5

Transfer-Encodingでサーバー応答があります:チャンク

HTTP/1.1 200 OK
Server: nginx/1.2.1
Date: Mon, 18 Feb 2013 08:22:49 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding

c7
{<some json data>}
0

jsonデータの前にそのc7チャンクサイズを参照してください。

を使用して、Windows Phoneでチャンクのない生の応答ストリームを読み取るにはどうすればよいHttpWebResponseですか?


ヒント:サーバーでチャンク出力を無効にするには、HTTP/1.0プロトコルバージョンを指定する必要があります。しかし、Windows PhoneまたはSilverlightProtocolVersionのクラスにはプロパティがないため、その方法がわかりません。HttpWebRequest

4

2 に答える 2

1

HttpClientチャンクされた出力を自動的に解析できます http://msdn.microsoft.com/en-us/library/system.net.http.httpclient(v=vs.110).aspx

HttpClientPostAsync と GetAsinc およびその他の優れた機能を備えた全体的に優れた機能です。二度と HttpWebRequest を使用することはありません。

HttpClient.NET Framework 4.5、Windows 8、または Windows Phone 8.1 ですぐに利用できます。

- .NET Framework 4 - Windows Phone Silverlight 7.5 - Silverlight 4 - ポータブル クラス ライブラリで HttpClient が必要な場合は、NuGet パッケージhttp://www.nuget.org/packages/Microsoft.Net.Httpを使用します。

于 2014-08-14T09:51:03.017 に答える
0

次の方法で、チャンクされた応答を読み取ることができます。

public static byte[] ReadChunkedResponse(this WebResponse response)
    {
        byte[] buffer;

        using (var stream = response.GetResponseStream())
        {
            using (var streamReader = new StreamReader(stream, Encoding.UTF8))
            {
                var content = new StringBuilder();
                while (!streamReader.EndOfStream)
                {
                    content.Append((char)streamReader.Read());
                }

                buffer = Encoding.UTF8.GetBytes(content.ToString());
            }
        }

        return buffer;
    }
于 2013-06-06T12:21:51.937 に答える