2016-09-13 3 views
0

zurück Ich verwende C#.
Ich versuche, eine POST-Anfrage mit dem folgenden Anfrage Körper zu machen:HTTP-POST-Anfragekörper gibt Code 400

{"taskId":15, "values" : [{"Key": "myKey","Value":"<Items> 
<Item> 
    <Item id="17362"/> 
</Item> 
</Items>"}]} 

Und der folgende Code:

var postData = "{\"taskId\":15, \"values\" : [{\"Key\": \"myKey\",\"Value\":\"<Items> <Item>  <Item id=\"17362\"/> </Item> </Items>\"}]}" 
var data = Encoding.ASCII.GetBytes(postData);//postData is the reqeust body 

request.Method = "POST"; 
request.ContentType = "application/json"; 
request.ContentLength = data.Length; 

using (var stream = request.GetRequestStream()) 
{ 
    stream.Write(data, 0, data.Length); 
} 

var response = (HttpWebResponse)request.GetResponse(); 

Und bekam die folgende execption:

The remote server returned an error: (400) Bad Request

Wie kann ich es lösen? Vielen Dank!

Edit: Die Web-Methode Signatur ist: MyWebMethod(int taskId, Dictionary<string, object> values)

Und die beiden Anträge sind Werke für mich:

{"taskId":15, "values" : 123 }]} 
{"taskId":15, "values" : "123" }]} 

My Web Server ist C# WebService (ASMX)

+0

Ein 400-HTTP-Statuscode bedeutet, dass der Server Ihr Nachrichtenformat nicht akzeptiert. Ohne Wissen darüber, welches Nachrichtenformat der Server akzeptiert, kann niemand sagen, was Sie falsch machen. – NtFreX

+0

@ Dr.Fre, du hast recht, siehe meine Frage bearbeiten. – Evyatar

+0

und welchen Rahmen verwenden Sie, um Ihren Zugangspunkt zu veröffentlichen? Web API? – NtFreX

Antwort

0

Problem gelöst durch ersetzen " bis &quot;.

Der Nachteil ist, dass ich meine Serverseite ändern muss, um wieder &quot;" zu ersetzen.

Verwandte Themen