发布multipart时,JSONObject文本必须以字符0处的“{”开头

时间:2015-03-31 11:01:07

标签: c# json windows-phone-8 multipartform-data

我正试图在Windows Phone中使用C#进行多部分调用。 我发送完全相同的json工作的android调用,但从wp我得到这个响应体:

“errorNumber”:90 - JSONObject文本必须以“}

的字符0处的”{“开头

我发送的第一个字符是{。

为什么会这样?

这是我的代码:

   public async Task postHttpClient(string serviceUrl, string requestObj)
    {

        Debug.WriteLine("postHttpClient");
        try
        {
            var client = new HttpClient();
            client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "multipart/form-data");
            Debug.WriteLine("requestObj: " + requestObj);
            Debug.WriteLine("curly brace should be expected: " + (int)requestObj.Trim().ElementAt(0));
            MultipartFormDataContent content = new MultipartFormDataContent();
            var contentData = new StringContent(requestObj.Trim());
            content.Add(contentData);

            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());
        }

    }

和我的小提琴手:

  • 原始标题

    POST / MyServer / SendActivity / HTTP / 1.1 接受: / 内容长度:703 Accept-Encoding:身份 内容类型:multipart / form-data;边界= “e8763d7d-a53d-4BAA-a6c7-c3bc37bd52a6” 用户代理:NativeHost 主持人:merp.techmobile.eu:8080 连接:保持活力 Pragma:no-cache

  • Textview标签

    - e8763d7d-a53d-4BAA-a6c7-c3bc37bd52a6 内容类型:text / plain;字符集= utf-8的 内容处理:表单数据

    { “SendActivityRequest”:{ “活性”:{...

1 个答案:

答案 0 :(得分:0)

通过在我的json中添加一个键,

可以帮助别人知道我修复了它

通过更改此行:content.Add(contentData); 这个content.Add(contentData, "request");