私は現在、基本的な http 認証で動作する Spreedly REST API を使用しています。
最初に、資格情報を次のように設定しました。
webRequest.Credentials = new System.Net.NetworkCredential(user, password);
これは、新しいゲートウェイの POST、ゲートウェイの GET、ゲートウェイへのデータの PUT、さらにはゲートウェイの編集など、多くの API リソースでうまく機能しました。
リソースで新しい payment_method を POST しようとしたときに壁にぶつかりました/v1/payment_methods.<format>
。
私が得ているエラー:
HTTP 422
{
"errors": [
{
"key": "errors.environment_key_parameter_required",
"message": "You must specify an environment_key parameter."
}
]
}
いろいろ検証した結果、そちらの例を元にcurlでやってみたらうまくいきました。
問題は、他の作業リソースに使用するのと同じコードであっても、HttpWebRequest で資格情報を設定する方法にあるようです。
「Basic」を指定できたので CredentialCache を使用してみましたが、同じように失敗しました。
CredentialCache cache = new CredentialCache();
cache.Add(webRequest.RequestUri, "Basic", new System.Net.NetworkCredential(user, password));
webRequest.Credentials = cache;