Цитата:
Сообщение от
Rimantas
Lucky13,
Могли вы подделиться исходником как примером ? XMLHTTPRequest или objXHTTP я пробывал потому , что ети штутки имеет POST возможность . А вот как с WinInet сделать POST - незнаю ... Мне именно надо POST .
Я имею в виду именно POST, WinInet тоже так умеет, просто нужно аксапту немного допилить.
Работающим примером вряд ли поделюсь, так как стандартные классы обросли всякой спецификой и выделить оттуда часть чтобы она у вас заработала будет непросто.
Вот небольшой пример в качестве идеи:
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;
}
Это метод класса WinInet. Недостающие переменные объявлены в классе и инициализируются parm-методами. Недостающие API-функции тоже реализованы в это классе. На вход дается адрес сервиса, а возвращаемое значение отдается функции WinInet.internetReadFile.
Вообще я Вам советую написать сначала программу с помощью API функций WinInet (примеров в сети полно), например, на Delphi или C++, удостовериться, что все работает и потом уже повторять тоже самое в аксапте.
Например, судя по вашему коду, Вы обращаетесь к сервису по https, а для этого должен быть открыт 443 порт на железках вашей локальной сети (прокси-сервер, например), если таковые имеются. В общем исключить прежде всего проблемы доступа.