JSONObject文本必须以' {'在使用C#发布数据时,在#34;}的字符0处

时间:2015-03-16 17:18:48

标签: c# rest windows-phone multipart dotnet-httpclient

我正在尝试使用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]);

我也修剪了那个没有变化的变量。

1 个答案:

答案 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);