WinHTTP Connect

时间:2009-08-24 19:40:59

标签: c# winhttp

我试图让WinHttp进行“CONNECT”调用(而不是“GET”或“POST”),如下所示:

CONNECT www.etrade.com:443 HTTP/1.0
Host: www.etrade.com

但是,winhttp总是强制执行“CONNECT”动词之后的路径,如下所示(位于该位置的前面):

CONNECT /www.etrade.com:443 HTTP/1.0
Host:  www.etrade.com

任何解决方法?或者我做错了什么?这是在C#.net 3.5框架,Winhttp 5.1

2 个答案:

答案 0 :(得分:1)

CONNECT不是HTTP动词,它是HTTPS请求的开始({SSL连接部分)。使用WinHTTP,您只需在OpenRequest上使用WINHTTP_FLAG_SECURE。类似的东西:

hConnect = WinHttpConnect(
              hSession, 
              "www.etrade.com", 
              443, 
              0
           );
hRequest = WinHttpOpenRequest(
              hConnect,  
              "GET", 
              "/", 
              "HTTP/1.0", 
              WINHTTP_NO_REFERER, 
              WINHTTP_DEFAULT_ACCEPT_TYPES, 
              WINHTTP_FLAG_SECURE
           );

这会让你成为一个CONNECT(用于SSL连接),然后是GET /(用于HTTP部分)。

答案 1 :(得分:0)

为什么使用WinHTTP而不是System.NET?

您的代码是什么(具体)?

您希望通过手动连接来实现什么?