sac*_*hin 4 wininet visual-c++
我有URI = http://localhost/IO_100_Service.svc/xml?id = {id}的虚拟Web服务,它返回XML格式的数据我想用VC++中的WINInet APi调用这个服务.有人可以帮我怎么用构造"HttpSendRequest"方法来添加标头和数据来调用此服务.
mar*_*inj 13
以下是您应该能够根据需要进行修改的示例代码.我使用命令行模板项目使用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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17831 次 |
| 最近记录: |