我正在尝试使用Windows Phone中的C#多部分休息Web服务。
为此我使用的是httpClient。
即使我发送的字符串是这样的:
{"AuthenticationRequest":{"company":"3000","identificationCode":"111", "username":"jack","password":"paz"}}
我在回复正文中收到此消息说明:
JSONObject文本必须以' {'在"}
的字符0处这是我的代码:
public async Task postHttpClient(string serviceUrl, string requestObj)
{
try
{
var client = new HttpClient();
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "multipart/form-data");
MultipartFormDataContent content = new MultipartFormDataContent();
Debug.WriteLine("requestObject: " + requestObject);
content.Add(new StringContent(requestObj, Encoding.UTF8), "AuthenticationRequest");
var responseVar = await client.PostAsync(serviceUrl, content);
responseVar.EnsureSuccessStatusCode();
Debug.WriteLine("responseVar: " + responseVar.ToString());
var body = await responseVar.Content.ReadAsStringAsync();
Debug.WriteLine("body: " + body);
}
catch (Exception e)
{
Debug.WriteLine("e: " + e.ToString());
}
}
注意:我的变量的第一个字母是{由
获得Debug.WriteLine("first letter: " + requestObj[0]);
我也修剪了那个没有变化的变量。
答案 0 :(得分:0)
它可能与您的服务有关,期望application / json内容,并且您正在发送multipart / form-data。
试试这个:
var message = new HttpRequestMessage(HttpMethod.Post, new Uri(serviceUrl));
message.Content = new StringContent(json, Encoding.UTF8, "application/json");
var result = await client.SendAsync(message, cancellationToken);