【问题标题】:UTF8 Encoded post Data causing problems windows phoneUTF8 编码后的数据导致 windows phone 出现问题
【发布时间】:2014-04-28 21:41:40
【问题描述】:

我正在开发 Windows Phone 应用程序。因为我需要以 UTF8 编码格式向服务器发送一个 json 字符串。我按照下面提到的方法。

    private void RequestStreamCallBack(IAsyncResult ar)
    {
        try
        {
            HttpWebRequest request = (HttpWebRequest)ar.AsyncState;

            Stream postStream = request.EndGetRequestStream(ar);

            string postData = "OPERATION_NAME=" + operationName + "&INPUT_DATA=" + inputData ;

            byte[] byteArray = Encoding.UTF8.GetBytes(postData);

            postStream.Write(byteArray, 0, postData.Length);
            postStream.Close();

            request.BeginGetResponse(new AsyncCallback(ResponseCallback), request);
        }
        catch (Exception ex)
        {
        }
    }

inputData 包含 JSON 字符串。到目前为止,它工作得很好。但是现在json字符串有“”字符或“+”字符。当这些字符出现时,服务器不会给出预期的响应。我不知道我错过了什么。

请帮忙。 谢谢。

【问题讨论】:

    标签: c# json post windows-phone-8 utf-8


    【解决方案1】:

    application/x-www-urlencoded 格式提交的 PostData 必须经过 URL 编码。

    名字里有。

    string postData = "OPERATION_NAME=" + URLEncode(operationName)
        + "&" + "INPUT_DATA=" + URLEncode(inputData);
    

    【讨论】:

    • 没错here
    • 谢谢它的帮助。但是当我在 windows phone 中开发时,我发现我必须使用本地类。 Uri.EscapeDataString 而不是 URLEncode。不过谢谢。 link
    猜你喜欢
    • 2015-06-19
    • 2014-02-04
    • 2021-05-28
    • 2013-03-02
    • 1970-01-01
    • 2013-10-05
    • 2016-12-03
    • 2021-08-27
    相关资源
    最近更新 更多