2016-05-05 4 views
0

私はasp.net開発者です。私は、お支払い処理のためにSquare Connect Apiを使用しました。以下は、カードノンスを充電するための私のコードです。しかし、私はエラーが発生しました(サポートされていないメディアタイプ\ "application/x-www-form-urlencoded \"、[application/json]のみが許可されています)。ソリューションは高く評価されています。Square Connectを使用してカードナンスを充電すると422エラーが発生する

スクエア接続スクエアアップからの要求:::

 RestSharp.RestClient Client = new RestSharp.RestClient("https://connect.squareup.com"); 
     RestSharp.RestRequest Request = new RestSharp.RestRequest("v2/locations/"+LocationId+"/transactions", RestSharp.Method.POST); 
     Request.RequestFormat = RestSharp.DataFormat.Json; 
     Request.AddHeader("Authorization", "Bearer " + access_token); 
     Request.AddHeader("Accept", "application/json"); 
     Request.AddHeader("Content-Type", "application/json"); 

     Request.AddParameter("name", "test"); 
     Request.AddParameter("card_nonce", card_nonce); 
     Request.AddParameter("amount_money", "{\"amount\":100,\"currency\":\"USD\"}"); 
     //Request.AddParameter("idempotency_key", Guid.NewGuid().ToString()); 

     RestSharp.IRestResponse response = Client.Execute(Request); 
     System.Net.HttpStatusCode getresponse = response.StatusCode; 

応答: { "エラー":[{ "カテゴリ": "INVALID_REQUEST_ERROR"、 "コード": "BAD_REQUEST"、 "詳細": "application/json]のみが許可されています"}]}

答えて

0

(RestSharpを使用した経験はありません)

creat (POSTまたはPUT)を使用してリクエストを送信する場合は、AddHeaderメソッドではなく、AddParameterメソッドでリクエストのコンテンツタイプを設定する必要があります。 this answerが示すように、あなたの要求は、ボディを持っているとき

、あなたは一度だけAddParameterを呼び出す:

Request.AddParameter("application/json", strJSONContent, ParameterType.RequestBody); 

最初のパラメータは、コンテンツの種類を指定し、2番目のパラメータは、あなたが投稿したい全体 JSON文字列です3番目のパラメータは、JSON文字列をリクエスト本文として使用する必要があることを示します。

これは、このメソッドを呼び出す前にPOSTするJSON文字列を作成する必要があることを意味します。

+0

ありがとうございました。それは私の仕事です。 – Bhavini

関連する問題