Цитата:
Сообщение от
smailik
Спасибо за ответы.
Это по памяти написано или прямой копипаст из кода?
у меня нет методов winInet.OpenRequest и winInet.SendRequest.
Это копипаст. В стандартном классе WinInet таких методов нет, но без них POST не сделаешь, их нужно добавить. Посмотрите как сделаны другие методы этого класса и сделайте также. У меня 3.0, возможно в 2009 эти методы есть, только по другому называются.
Примерно вот так:
X++:
_httpOpenRequest = new DLLFunction(_winInet, 'HttpOpenRequestA');
_httpOpenRequest.returns(ExtTypes::DWord);
_httpOpenRequest.arg(ExtTypes::DWORD);
_httpOpenRequest.arg(ExtTypes::String);
_httpOpenRequest.arg(ExtTypes::String);
_httpOpenRequest.arg(ExtTypes::String);
_httpOpenRequest.arg(ExtTypes::String);
_httpOpenRequest.arg(ExtTypes::DWORD);
_httpOpenRequest.arg(ExtTypes::DWORD);
_httpOpenRequest.arg(ExtTypes::DWORD);
_httpSendRequest = new DLLFunction(_winInet, 'HttpSendRequestA');
_httpSendRequest.returns(ExtTypes::DWord);
_httpSendRequest.arg(ExtTypes::DWord);
_httpSendRequest.arg(ExtTypes::String);
_httpSendRequest.arg(ExtTypes::DWord);
_httpSendRequest.arg(ExtTypes::String);
_httpSendRequest.arg(ExtTypes::DWord);
int OpenRequest(int hdl, str _url, str _verb = "POST", int flags = 0)
{
;
return _httpOpenRequest.call(hdl, _verb, _url, '', '', 0, flags, 0);
}
int SendRequest(int handle, str hdr, str data)
{
;
return _httpSendRequest.call(handle, hdr, strlen(hdr), data, strlen(data));
}
Либо воспользуйтесь классом XMLHTTPRequest, только он прокси-сервер не понимает