c#中使用winhttp.dll

crazybabycode 2010-10-18 12:44:06
请教,如题,怎么在c#中调用winhttp.dll,并操作winhttp.winhttprequest.5.1这个组件.
...全文
463 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazybabycode 2010-11-09
  • 打赏
  • 举报
回复
谢谢,搞定了
huminghua 2010-10-19
  • 打赏
  • 举报
回复
在工具栏中点击选项卡 单击右键》添加 选择项 然后把dll文件添加进去你就可以用啦!
bloodish 2010-10-19
  • 打赏
  • 举报
回复
给你一个C++的实际例子,替换了一些敏感内容,你通过PInvoke照着写,应该没问题.


void UpdateData()
{

HINTERNET hSession;
HINTERNET hConnect;
HINTERNET hRequest;
BOOL httpResult;
DWORD data;
DWORD dwSize = sizeof(DWORD);
LPWSTR pwszURL;
DWORD dwStatusCode = 0;
DWORD dwTemp = 0;

CString szText=TEXT("www.google.com");

// Use WinHttpOpen to obtain a session handle.
hSession = WinHttpOpen( L"HTTP Send Request Program/1.0", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
WINHTTP_NO_PROXY_NAME,
WINHTTP_NO_PROXY_BYPASS, 0);
if (!hSession)
return FALSE;

// Use WinHttpQueryOption to retrieve Internet options.
httpResult = WinHttpQueryOption( hSession, WINHTTP_OPTION_CONNECT_TIMEOUT, &data, &dwSize);
if (!httpResult)
return FALSE;


hConnect = WinHttpConnect( hSession, L"www.google.com", INTERNET_DEFAULT_HTTP_PORT, 0);
if (!hConnect)
goto END;

// Open and Send a Request Header.
hRequest = WinHttpOpenRequest( hConnect, L"GET",
szText,
NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0);
if (!hRequest)
goto END;
httpResult = WinHttpSendRequest( hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0);
if (!hRequest)
goto END;
httpResult = WinHttpReceiveResponse(hRequest, NULL);
if (!hRequest)
goto END;


// Check the status code.
httpResult = WinHttpQueryHeaders( hRequest,
WINHTTP_QUERY_STATUS_CODE|
WINHTTP_QUERY_FLAG_NUMBER, NULL,
&dwStatusCode, &dwSize, NULL);

if (httpResult)
{
switch (dwStatusCode)
{
case 200:
// The resource was successfully retrieved.
// You could use WinHttpReadData to read the contents of the server's response.

break;
default:
// The status code does not indicate success.
//printf("\nThe server responded with a status code of %i.", dwStatusCode);
// error
goto END;
break;
}
}
END:
// When finished, release the hRequest handle.
httpResult = WinHttpCloseHandle(hRequest);
if (!httpResult)
return FALSE;

// When finished, release the hConnect handle.
httpResult = WinHttpCloseHandle(hConnect);
if (!httpResult)
return FALSE;

// When finished, release the hSession handle.
httpResult = WinHttpCloseHandle(hSession);
if (!httpResult)
return FALSE;


return TRUE;
}
ZengHD 2010-10-18
  • 打赏
  • 举报
回复
不用HttpWebRequest?
自己用API写?
crazybabycode 2010-10-18
  • 打赏
  • 举报
回复
恩,httpwebrequest会,刚学c#不长,想了解这方面的知识,希望懂的朋友指导下.

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧