2017-06-20 39 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