使用 HTTPS 和 httpWebRequest

Posted

技术标签:

【中文标题】使用 HTTPS 和 httpWebRequest【英文标题】:Using HTTPS and httpWebRequest 【发布时间】:2012-05-10 12:20:29 【问题描述】:

我将 httpwebrequests 发送到 paypal api 服务器,这使用 https。我做了你通常对 http 请求所做的正常事情,并且它起作用了。我是否需要做任何特别的事情才能正确使用 https,或者在请求 URL 中指定 https 以使其正常工作?

谢谢!

顺便说一句,我的请求是从我的服务器发送的,因此加密它们并不像从客户端计算机发送它们那样重要,但我仍然想正确地做。

【问题讨论】:

【参考方案1】:

在使用HttpWebRequest 时,只需将http 与https 交换就足够了。它不需要对 https 请求进行特殊处理。

【讨论】:

在使用 WebRequest 而不是 HttpWebRequest 时也可以工作? WebRequest.Create 实际上创建了一个 HttpWebRequest,所以,是的。 设置https后得到403【参考方案2】:

只要证书没有问题,将 URL 更改为 https 应该就足够了。

SSL 将在证书方面检查 3 件事:

    证书已颁发给您正在访问的 URI 证书未过期 证书由受信任的机构颁发(例如:威瑞信)

在这些标准中,#3 是最常见的失败检查。您可以以编程方式忽略任何或所有这些错误(风险自负)。 Here 是一个关于如何做到这一点的例子。

也就是说,如果这是针对 Paypal api,您不应该有任何证书错误。

【讨论】:

自签名证书也不应该有任何问题。【参考方案3】:

如果您使用CookieContainer 类服务器的SetCookies(Uri, string) 方法,则使用https 将拒绝您的请求! 要在登录后使用 cookie,您必须使用单个 cookie 对象

【讨论】:

以上是关于使用 HTTPS 和 httpWebRequest的主要内容,如果未能解决你的问题,请参考以下文章

HttpWebRequest请求https为啥会出现重复内容

使用 POST 方法将 HttpWebRequest 转换为 HttpClient

解析来自 Httpwebrequest 的 Json 响应

GJM : C# HttpWebRequest GET HTTP HTTPS 请求

C# HttpWebRequest GET HTTP HTTPS 请求

Linux中用HttpWebRequest或WebClient访问远程https路径