私は Spreedly を使用していますが、マイナーな問題だと思われる問題に遭遇しています。
私の人生では、コードがコンテキストを正しく送信しない理由がわかりません...
これは、エラー (422) Unprocessable Entity を返す私のコード (資格情報が変更されました) です。これは、送信されている XML に問題があることを意味するとしか考えられませんが、ブレークポイントを設定すると正しいように見えます。
string url = "https://core.spreedly.com/v1/gateways.xml";
WebRequest request = WebRequest.Create(url);
request.ContentType = "Content-type: application/xml";
request.Method = "POST";
request.Credentials = new NetworkCredential("Ll6fAtoVSTyVMlJEmtpoJV8Shw5", "RKOCG5D8D3fZxDSg504D0IxU2XD4Io5VXmyzdCtTivHFTTSylzM2ZzTWFwVH4ucG");
XElement xelement = new XElement("gateway", new XElement("gateway_type", "test"));
byte[] buffer = Encoding.UTF8.GetBytes(xelement.ToString());
request.ContentLength = buffer.Length;
Stream reqstr = request.GetRequestStream();
reqstr.Write(buffer, 0, buffer.Length);
reqstr.Close();
WebResponse response = request.GetResponse();
私は WebRequest を頻繁に使用するわけではないので、単純なものが欠けている可能性は十分にあります。
ここにドキュメンテーションをこまめに保管してください。
例はcurlであり、次のものを送信する必要があると言っています:
$ curl https://core.spreedly.com/v1/gateways.xml \
-u 'Ll6fAtoVSTyVMlJEmtpoJV8Shw5:RKOCG5D8D3fZxDSg504D0IxU2XD4Io5VXmyzdCtTivHFTTSylzM2ZzTWFwVH4ucG' \
-H 'Content-Type: application/xml' \
-d '<gateway>
<gateway_type>test</gateway_type>
</gateway>'
どんな助けでも大歓迎です。
ありがとうございました。