Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UTF8编码的post数据导致windows phone出现问题_C#_Json_Post_Windows Phone 8_Utf 8 - Fatal编程技术网

C# UTF8编码的post数据导致windows phone出现问题

C# UTF8编码的post数据导致windows phone出现问题,c#,json,post,windows-phone-8,utf-8,C#,Json,Post,Windows Phone 8,Utf 8,我正在开发windows phone应用程序。在这种情况下,我需要以UTF8编码格式向服务器发送一个json字符串。我遵循下面提到的方法 private void RequestStreamCallBack(IAsyncResult ar) { try { HttpWebRequest request = (HttpWebRequest)ar.AsyncState; Stream postStrea

我正在开发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字符串有“”字符或“+”字符。当这些字符出现时,服务器不会给出预期的响应。我不知道我错过了什么

请帮忙。
谢谢。

应用程序/x-www-urlencoded
格式提交的PostData必须是URL编码的

它是以名字命名的

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

是的,谢谢,这很有帮助。但是当我在windows phone中开发时,我发现我必须使用本机类。Uri.EscapeDataString而不是URLEncode。谢谢你。