我试图让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
答案 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?
您的代码是什么(具体)?
您希望通过手动连接来实现什么?