0

我试图让 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

4

2 回答 2

1

CONNECT 不是 HTTP 动词,它是 HTTPS 请求的开始({SSL 连接部分)。使用 WinHTTP,您只需使用WINHTTP_FLAG_SECUREon OpenRequest。就像是:

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 部分)。

于 2009-08-25T02:12:15.340 回答
0

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

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

您希望通过手动 CONNECT 完成什么?

于 2009-08-25T01:57:30.663 回答