【问题标题】:WinHTTP ConnectWinHTTP 连接
【发布时间】:2009-08-24 19:40:58
【问题描述】:

我正在尝试让 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

【问题讨论】:

    标签: c# winhttp


    【解决方案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 部分)。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-07-11
        • 2015-05-19
        • 1970-01-01
        • 2013-02-27
        • 2019-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-31
        相关资源
        最近更新 更多