【问题标题】:.NET https authentication (pingdom api).NET https 身份验证(pingdom api)
【发布时间】:2012-07-25 11:45:52
【问题描述】:

我必须从 Pingdom 接收 API。地址是https://api.pingdom.com

当它是 https 时,我如何在 .NET 中进行 http 获取?谷歌没有给我任何工作:(

最好的问候

更新::

感谢您的帮助.. 尝试使用 PowerShell:

$NC = New-Object System.Net.NetworkCredential("USER", "PASS")
$CC = New-Object System.Net.CredentialCache
$CC.Add("api.pingdom.com", 443, "Basic", $NC)


$webclient = [System.Net.WebRequest]::Create("https://api.pingdom.com")
$webclient.Credentials = $CC
$webclient.PreAuthenticate = $true
$webclient.Method = "POST"

$webclient.GetResponse()

我收到错误:使用“0”参数调用“GetResponse”的异常:“远程服务器返回错误:(401) 未经授权。”

有什么好的建议吗?

【问题讨论】:

标签: c# .net powershell


【解决方案1】:

基本上,

http://www.pingdom.com/services/api-documentation-rest/

用户凭据的身份验证方法是 HTTP 基本访问身份验证(通过 HTTPS 加密)。这意味着您将在每次提出请求时提供您的凭据。不使用任何会话。

HTTP 基本访问身份验证在此处和 MSDN 上都有详细记录。

这个答案连同 API 文档应该可以帮助您走上正确的道路。

https://stackoverflow.com/a/1127295/64976

假设您使用 WebRequest,则将 CredentialCache 附加到您的请求:

NetworkCredential nc = new NetworkCredential("user", "password");
CredentialCache cc = new CredentialCache();
cc.Add("www.site.com", 443, "Basic", nc);

CredentialCache 用于设置基本身份验证。

【讨论】:

    【解决方案2】:

    您应该能够设置网络客户端的凭据,然后在需要登录的任何时候,它都会提供您提供的信息。

    WebClient webClient = new WebClient();
    webClient.Credentials = new System.Net.NetworkCredential("UserName", "Password", "Domain");
    

    【讨论】:

      猜你喜欢
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 2017-07-24
      • 2018-05-13
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多