2017-06-20 89 views
1

我用c#編寫的代碼wcf服務。它調用第三方支付API。在wcf中的響應錯誤c#API

string requestBody = "{ \"cardToken\":\"xxxxx\", \"expiryDate\":\"xxxx\",\"cvv\":\"xxx\",\"amount\":\"xxx\" }";       
string data = Newtonsoft.Json.JsonConvert.SerializeObject(requestBody);       
var content = new StringContent(data, Encoding.UTF8, "application/json"); 

HttpResponseMessage responseDebitAPI = client.PostAsync("http://example.com/example/api/payments/debit?access_token=xxxxxxxxxxxxxx", content).Result; 

呼叫我得到下面的錯誤API後:

{StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: 
{ 
    Date: Tue, 20 Jun 2017 08:04:59 GMT 
    Server: Microsoft-IIS/8.0 
    X-Powered-By: ASP.NET 
    Content-Length: 1011 
    Content-Language: en 
    Content-Type: text/html; charset=utf-8 
}} 

請幫我在上面的代碼,如果我做錯了。

回答

0

請試試這個,讓我知道了結果:

string requestBody = "{ \"cardToken\":\"xxxxx\", \"expiryDate\":\"xxxx\",\"cvv\":\"xxx\",\"amount\":\"xxx\" }";       
string data = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(requestBody);       
var content = new StringContent(data, Encoding.UTF8, "application/json"); 

HttpResponseMessage responseDebitAPI = client.PostAsync("http://example.com/example/api/payments/debit?access_token=xxxxxxxxxxxxxx", content).Result; 

你輸入序列化的三倍!那就是問題所在。

+0

謝謝大衛... –

+0

不客氣。 – David