|
![]() |
#1 |
Участник
|
Цитата:
Могли вы подделиться исходником как примером ? XMLHTTPRequest или objXHTTP я пробывал потому , что ети штутки имеет POST возможность . А вот как с WinInet сделать POST - незнаю ... Мне именно надо POST . |
|
![]() |
#2 |
Участник
|
Цитата:
Работающим примером вряд ли поделюсь, так как стандартные классы обросли всякой спецификой и выделить оттуда часть чтобы она у вас заработала будет непросто. Вот небольшой пример в качестве идеи: X++: int internetOpenUrl(str url,int flags = 0,int context = 0) { str serverName; str urlName; str data; str hdr; int hdl, pos, pos1, res; int status; ; pos = strfind(url, '@', 1, strlen(url)); if (pos == 0) pos = strfind(url, '/', 1, strlen(url))+1; else url = strdel(url,1, pos); pos = strfind(url, '/', 1, strlen(url)); pos1 = strfind(url, '?', 1, strlen(url)); serverName = substr(url, 1, pos-1); hdl = this.internetConnect(serverName,80); if (_method == 0) { //Метод Get urlName = substr(url, pos, strlen(url) - pos + 1); data = ''; hdr = ''; hdl = this.OpenRequest(hdl, urlName, 'GET'); } else { //Метод POST urlName = substr(url, pos, pos1 - pos); data = substr(url, pos1+1, strlen (url) - pos1); hdr = 'Content-Type: application/x-www-form-urlencoded'; hdl = this.OpenRequest(hdl, urlName, 'POST'); } if (login) { this.internetSetOption(hdl, 28, login); this.internetSetOption(hdl, 29, pass); } res = this.SendRequest(hdl, hdr, data); return hdl; } Вообще я Вам советую написать сначала программу с помощью API функций WinInet (примеров в сети полно), например, на Delphi или C++, удостовериться, что все работает и потом уже повторять тоже самое в аксапте. Например, судя по вашему коду, Вы обращаетесь к сервису по https, а для этого должен быть открыт 443 порт на железках вашей локальной сети (прокси-сервер, например), если таковые имеются. В общем исключить прежде всего проблемы доступа. |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от Lucky13
![]() Я имею в виду именно POST, WinInet тоже так умеет, просто нужно аксапту немного допилить.
Вот небольшой пример в качестве идеи: X++: int internetOpenUrl(str url,int flags = 0,int context = 0) { hdl = this.OpenRequest(hdl, urlName, 'GET'); hdl = this.OpenRequest(hdl, urlName, 'POST'); } Вообще я Вам советую написать сначала программу с помощью API функций WinInet (примеров в сети полно), например, на Delphi или C++, удостовериться, что все работает и потом уже повторять тоже самое в аксапте. Например, судя по вашему коду, Вы обращаетесь к сервису по https, а для этого должен быть открыт 443 порт на железках вашей локальной сети (прокси-сервер, например), если таковые имеются. В общем исключить прежде всего проблемы доступа. |
|
![]() |
#4 |
Участник
|
Цитата:
Почитайте, например, здесь http://www.rsdn.ru/article/inet/wininet.xml |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от Lucky13
![]() Пример из Ax 3.0 сто процентов, просто нужно дописать недостающие функции в классе WinInet. OpenRequest - это WinAPI функция и для нее можно написать оболочку в Аксапте.
Почитайте, например, здесь http://www.rsdn.ru/article/inet/wininet.xml |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|