首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Chargify REST上进行身份验证

无法在Chargify REST上进行身份验证
EN

Stack Overflow用户
提问于 2016-01-13 18:24:58
回答 2查看 691关注 0票数 2

我试图对Chargify API上的简单GET请求进行身份验证。关于如何将证书传递给服务,我可能遗漏了一个细节。

我得到了以下错误:

“基础连接已关闭:发送时发生意外错误。” “身份验证失败,因为远程方已关闭传输流。”

我使用的代码如下:

代码语言:javascript
复制
const string url = "https://subdomain.chargify.com/subscriptions.json";
var request = (HttpWebRequest)WebRequest.Create(url);

string auth = Convert.ToBase64String(Encoding.ASCII.GetBytes("apikey:x"));
request.Headers[HttpRequestHeader.Authorization] = "Basic " + auth;

WebResponse response = request.GetResponse(); //THROW ERROR

using (Stream responseStream = response.GetResponseStream())
{
    var reader = new StreamReader(responseStream, Encoding.UTF8);
    return reader.ReadToEnd();
}

我遵循Chargify API文档的说明,您可以在这里查阅以下信息:

https://docs.chargify.com/api-authentication

https://docs.chargify.com/api-introduction

使用chrome扩展"Advanced“,我使用上面的url进行GET请求,然后在它的传统弹出窗口中请求证书,我将api键和'x‘作为密码,然后我在json中得到了我所期望的答案。所以我知道api键是正确的,我缺少的是如何通过请求传递C#中的信息。

在文档中使用curl,他们给出了下面的示例:

代码语言:javascript
复制
 curl -u api-key:x https://subdomain.chargify.com/customers.xml

你知不知道,这个卷曲的-u参数应该如何转换成C#?

谢谢!

正如我在注释中建议的那样,编辑,我尝试使用.NET包装,但我得到了确切的错误。下面是我的代码示例:

代码语言:javascript
复制
var _apiConnection = new ChargifyConnect(url, _userName, _password);
var productList = _apiConnection.GetProductList();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-14 14:15:13

由于连接刚刚关闭,没有回复,这可能与本周生效的TLS 1.2要求有关。

https://docs.chargify.com/tls-upgrade-notice

票数 1
EN

Stack Overflow用户

发布于 2018-02-15 14:24:55

我通过显式地将TLS版本设置为1.2来修正这个问题。只需在调用Chargify之前添加以下代码:

代码语言:javascript
复制
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34774271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档