2

Chargify API で単純な GET リクエストを認証しようとしています。資格情報をサービスに渡す方法の詳細が不足している可能性があります。

次のエラーが発生しました。

「基になる接続が閉じられました: 送信時に予期しないエラーが発生しました。」

「相手側がトランスポート ストリームを閉じたため、認証に失敗しました。」

私が使用しているコードは次のとおりです。

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 REST Client」を使用して、上記のURLでGETリクエストを実行し、Chromeが従来のポップアップで資格情報を要求し、APIキーとパスワードとして「x」を入力すると、jsonで回答が得られますまさに私が期待しているもののために。APIキーが正しいことはわかっていますが、欠けているのは、リクエストを介してC#で情報を渡す方法です。

ドキュメントでcurlを使用すると、次の例が示されます。

 curl -u api-key:x https://subdomain.chargify.com/customers.xml

curl のこの -u パラメータを C# でどのように変換する必要があるか、何か考えはありますか?

ありがとう!

EDIT コメントで示唆されているように、.NETラッパーを使用してみましたが、正確なエラーが発生しました。ここに私のコードサンプルがあります:

var _apiConnection = new ChargifyConnect(url, _userName, _password);
var productList = _apiConnection.GetProductList();
4

2 に答える 2

1

接続は応答なしで閉じられているだけなので、これは今週発効した TLS 1.2 要件に関連している可能性があります。

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

于 2016-01-14T14:15:13.633 に答える