Показать сообщение отдельно
Старый 08.12.2014, 10:29   #14  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от 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, только он прокси-сервер не понимает

Последний раз редактировалось Lucky13; 08.12.2014 в 10:37.
За это сообщение автора поблагодарили: smailik (1).