gpt4 book ai didi

visual-c++ - 如何构造WININET的HttpSendRequest方法

转载 作者:行者123 更新时间:2023-12-03 00:27:31 26 4
gpt4 key购买 nike

我有 URI =http://localhost/IO_100_Service.svc/xml?id={id} 的虚拟 Web 服务,它以 XML 格式返回数据我想在 VC++ 中使用 WINInet APi 调用此服务。任何人都可以帮助我如何使用构造“HttpSendRequest”方法添加 header 和数据来调用此服务。

最佳答案

这是一个示例代码,您应该能够根据您的需要进行修改。我使用VS2005使用命令行模板项目对其进行了测试。

    #include <tchar.h>
#include <wininet.h>

/// ....

HINTERNET hIntSession =
::InternetOpen(_T("MyApp"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);

HINTERNET hHttpSession =
InternetConnect(hIntSession, _T("api.twitter.com"), 80, 0, 0, INTERNET_SERVICE_HTTP, 0, NULL);

HINTERNET hHttpRequest = HttpOpenRequest(
hHttpSession,
_T("GET"),
_T("1/statuses/user_timeline.xml?screen_name=twitterapi"),
0, 0, 0, INTERNET_FLAG_RELOAD, 0);

TCHAR* szHeaders = _T("Content-Type: text/html\nMySpecialHeder: whatever");
CHAR szReq[1024] = "";
if( !HttpSendRequest(hHttpRequest, szHeaders, _tcslen(szHeaders), szReq, strlen(szReq))) {
DWORD dwErr = GetLastError();
/// handle error
}

CHAR szBuffer[1025];
DWORD dwRead=0;
while(::InternetReadFile(hHttpRequest, szBuffer, sizeof(szBuffer)-1, &dwRead) && dwRead) {
szBuffer[dwRead] = 0;
OutputDebugStringA(szBuffer);
dwRead=0;
}

::InternetCloseHandle(hHttpRequest);
::InternetCloseHandle(hHttpSession);
::InternetCloseHandle(hIntSession);

关于visual-c++ - 如何构造WININET的HttpSendRequest方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com