winhttp的代理支持?

NesTa_xP 2011-10-17 05:53:09
请问WinHTTP如果实现代理支持,例如http代理、socks5代理、浏览器代理设置。
浏览器代理设置msdn上面已有说明,http代理和socks5代理请问如何设置?还是WinHTTP根本就不支持这两种方式代理?
...全文
534 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
solohac 2011-10-20
  • 打赏
  • 举报
回复
以下文章中说得很清楚。红色为重点

http://msdn.microsoft.com/en-us/library/aa384081(v=VS.85).aspx



WinHTTP Sessions Overview
HINTERNET Handles in WinHTTP
Uniform Resource Locators (URLs) in WinHTTP
Authentication in WinHTTP
Passport Authentication in WinHTTP
SSL in WinHTTP
Asynchronous Completion in WinHTTP
Retrieving Internet Options in WinHTTP
Setting Internet Options in WinHTTP
Using WinHttp as a Side-by-side Assembly
WinHTTP AutoProxy Support

Handling Authentication
NesTa_xP 2011-10-18
  • 打赏
  • 举报
回复
c++的winhttp api确实没发现如何设置代理啊
masterz 2011-10-17
  • 打赏
  • 举报
回复
another post
1: Const CREDENTIALS_FOR_SERVER = 0

2: Const CREDENTIALS_FOR_PROXY = 1

3: Const HTTPREQUEST_PROXYSETTING_PROXY = 2

4:

5: Dim TweetUrl, TUser, TPass, strProxy, strProxyUser, strProxyPass

6: Dim objHTTP

7:

8: TweetUrl = "http://twitter.com/statuses/replies.xml"

9: TUser = "User"

10: TPass = "password"

11:

12: strProxy = "ProxyServerName"

13: strProxyUser = "Domain\UserName"

14: strProxyPass = "Password"

15:

16: Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")

17:

18: 'Set Proxy Server name here

19: objHttp.SetProxy HTTPREQUEST_PROXYSETTING_PROXY, strProxy

20:

21: objHTTP.open "GET", TweetUrl,false

22:

23: 'Set credentials for both proxy and Tweeter access

24: objHttp.SetCredentials strProxyUser,strProxyPass,CREDENTIALS_FOR_PROXY

25: objHttp.SetCredentials TweetUser,TweetPass,CREDENTIALS_FOR_SERVER

26:

27: objHTTP.send

28:

29: WScript.Echo objHTTP.responseText

masterz 2011-10-17
  • 打赏
  • 举报
回复
refer to this post
Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")

WinHttpReq.SetTimeouts 15000,15000,15000,15000

WinHttpReq.SetProxy 2,"<ProxyIP>:8080"

WinHttpReq.Open "GET", "http://google.com", False

WinHttpReq.SetRequestHeader "Cache-Control", "no-cache"

WinHttpReq.SetRequestHeader "Pragma", "no-cache"

On Error Resume Next

WinHttpReq.Send

If Err.Number = 0 Then

If WinHttpReq.Status = "200" Then

'WScript.Echo WinHttpReq.ResponseText

WScript.Echo "Google Page Accessible"

Else

WScript.Echo "HTTP " & WinHttpReq.Status & " " & WinHttpReq.StatusText

End If

Else

WScript.Echo "Error " & " " & Err.Number & " " & Err.Source & " " & Err.Description

End If
WinHTTP提供以下功能: WinHttpAddRequestHeaders 向HTTP请求句柄添加一个或多个HTTP请求标头。 WinHttpCheckPlatform 确定WinHTTP是否支持当前平台。 WinHttpCloseHandle 关闭单个 HINTERNET句柄。 WinHttpConnect 指定HTTP请求的初始目标服务器。 WinHttpCrackUrl 将URL分为其组成部分,例如主机名和路径。 WinHttpCreateProxyResolver 创建WinHttpGetProxyForUrlEx使用的句柄。 WinHttpCreateUrl 从组件部分创建URL,例如主机名和路径。 WinHttpDetectAutoProxyConfigUrl 查找代理自动配置(PAC)文件的URL。此功能报告PAC文件的URL,但不下载该文件。 WinHttpFreeProxyResult 释放从以前的调用WinHttpGetProxyResult检索的数据。 WinHttpGetDefaultProxyConfiguration 从注册表中检索默认的WinHTTP代理配置。 WinHTTPGetIEProxyConfigForCurrentUser 获取当前用户的Internet Explorer(IE)代理配置。 WinHttpGetProxyForUrl 检索指定URL的代理信息。 WinHttpGetProxyForUrlEx 检索指定URL的代理信息。 WinHttpGetProxyResult 检索到调用的结果WinHttpGetProxyForUrlEx。 WinHttpOpen 初始化应用程序对WinHTTP功能的使用。 WinHttpOpenRequest 创建HTTP请求句柄。 WinHttpQueryAuthSchemes 返回服务器支持的授权方案。 WinHttpQueryDataAvailable 返回可立即与读取数据的字节数 WinHttpReadData。 WinHttpQueryHeaders 检索与HTTP请求相关联的头信息。 WinHttpQueryOption 在指定的句柄上查询Internet选项。 WinHttpReadData 从WinHttpOpenRequest函数打开的句柄中读取数据 。 WinHttpReceiveResponse 结束由WinHttpSendRequest启动的HTTP请求 。 WinHttpResetAutoProxy 重置自动代理WinHttpSendRequest 将指定的请求发送到HTTP服务器。 WinHttpSetCredentials 将所需的授权凭证传递给服务器。 WinHttpSetDefaultProxyConfiguration 在注册表中设置默认的WinHTTP代理配置。 WinHttpSetOption 设置Internet选项。 WinHttpSetStatusCallback 设置WinHTTP可以在操作过程中进行调用的回调函数。 WinHttpSetTimeouts 设置涉及HTTP事务的各种超时。 WinHttpTimeFromSystemTime 根据HTTP版本1.0规范格式化日期和时间。 WinHttpTimeToSystemTime 获取HTTP时间/日期字符串并将其转换为 SYSTEMTIME结构。 WinHttpWriteData 将请求数据写入HTTP服务器。 WinHttpWebSocketClose 关闭WebSocket连接。 WinHttpWebSocketCompleteUpgrade 完成由WinHttpSendRequest启动的WebSocket握手。 WinHttpWebSocketQueryCloseStatus 获取服务器发送的关闭状态。 WinHttpWebSocketReceive 从WebSocket连接接收数据。 WinHttpWebSocketSend 通过WebSocket连接发送数据。 WinHttpWebSocketShutdown 向WebSocket连接发送关闭框架
功能强大 通用 易上手 易扩展改造 模版界面友好 亲 你需要的我都想到了 快来拿护甲吧 *这次福利例程完美通用于代理注册(只要是代理注册基本都可以直接套用此模版) *适合于新手(代码很容易看懂和修改扩展) *稳定多线程(鱼刺线程池 你值得拥有) *代理智能提取(代理快用完自动智能提取补充 工作不暂停极大提升效率) *界面设计合理可扩展(*支持运行中修改配置参数 *暂停/继续 *中途停止 *日志输出和保存到本地) -------------------------------------------- Config_Bints.ini 配置说明 触发补充阀值  : 当前剩余代理小于这个数值会触发自动提取并验证补充代理(0=自动(本次提取数量\4且>=10)) 提取地址      : 用于提取代理的API地址 提取分隔符    :  提取的代理的分隔符 默认=\\r\\n(换行符) 是否正则分割  : 是否使用正则匹配 真=使用正则匹配(正则必须包含两个子匹配项1为地址2为端口) 假=使用分割文本匹配 提取间隔      : 两次提取最小间隔(毫秒) 为了防止提取API接口限制提取频繁冻结 验证地址      : 用于验证代理是否有效的url 比如IP138 又比如百度  |如果想不验证提取的代理直接使用 请设置为:不验证 是否UTF8解码  : 验证代理返回的网页内容是否进行UTF8解码 验证特征      : 验证代理URL返回的内容里存在这个特征既是有效(比如验证地址是(百度) 特征可以是'百度一下') 尝试验证次数  : 尝试验证次数 默认1次 代理生命值    : 提取的代理能被获取几次 比如采集东西的时候就可以设置10-50次 访问组件模式  : 提取和验证使用的访问组件 0=WinHttpRequest(默认=0) 1=WinHttpApi x3.9 增加在配置设置'验证地址=不验证'时来支持提取的代理不需要验证直接使用 修正一处问题 会在特殊情况下照成正在验证数异常 鱼刺

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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