Cielo(クレジットカード/デビットカードゲートウェイ会社)からRESTサービスを利用しようとしています。私は郵便配達を使用している場合、それは動作します:Request throwing C#リクエストでのみ既存の接続がリモートホストによって強制的にクローズされました
POST /1/sales/ HTTP/1.1
Host: apisandbox.cieloecommerce.cielo.com.br
MerchantKey: my_key
Content-Type: application/json
MerchantId: merc_id
Cache-Control: no-cache
Postman-Token: 6643cc5a-173a-f5db-8924-85ea8b7bbb55
{"MerchantId":"00000000-0000-0000-0000-000000000000","MerchantKey":null,"RequestId":"00000000-0000-0000-0000-000000000000","MerchantOrderId":"1223","Customer":{"Name":"Emerson Fitchy"},"Payment":{"PaymentId":"00000000-0000-0000-0000-000000000000","Type":"CreditCard","Amount":15700,"Installments":1,"Provider":null,"ProofOfSale":null,"Tid":null,"AuthorizationCode":null,"SoftDescriptor":null,"ECI":null,"Status":0,"ReturnCode":null,"ReturnMessage":null,"CreditCard":{"CardNumber":"0000000000000001","Holder":"Emerson Fitchy Santis","ExpirationDate":"12/2022","SecurityCode":"154","Brand":"Visa"}}}
をそして、これはC#のコードです(現時点では、私はRestSharp
と同じ結果とHttpClient
でも試してみました):
var webrequest = (HttpWebRequest)WebRequest.Create(Constants.Cielo.GetSalesUrl());
webrequest.ContentType = "application/json";
webrequest.Method = "POST";
webrequest.Headers.Add("MerchantId", Constants.Cielo.Sandbox.MerchantId.ToString());
webrequest.Headers.Add("MerchantKey", Constants.Cielo.Sandbox.MerchantKey);
using (var streamWriter = new StreamWriter(webrequest.GetRequestStream()))
{
var json = JsonConvert.SerializeObject(sale);
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)webrequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
var x = result;
}
何午前上の任意のアイデアを私は間違っている?私はFiddler 4を使用しようとしましたが、このリクエストを受け取りませんでした(なぜわかりません)、WireSharkはそれをピックアップしますが、Fiddlerのように情報を表示しません(httpsを使用しているためでしょうか?
アイデア?
ありがとうございます!
EDIT
応答/例外
それはAPIが可能だがあなたのユーザーが好きではない - 必要なヘッダーが欠落しています。関連項目 - http://stackoverflow.com/a/15031536/2779990 –
@StinkyTowelご意見ありがとうございます。私はユーザーエージェントを追加してあなたに戻ろうとします。私があなたが郵便配達所で見たのと同じものを追加しているので、私は疑問に思うヘッダーについて。 – eestein
@StinkyTowel残念ながら、それはユーザエージェントではありませんでした。:/ 'webrequest.UserAgent =" Mozilla/5.0 ... "; ' – eestein