5

C#\XAMLメトロUIアプリケーションを開発しています。あるサービスに電話して、これを利用したいと思いますHttpWebRequestHttpWebRequest包含ContentLengthおよびUserAgentプロパティの以前の実現。しかし、WinRTの実現にはそれがありません。この投稿で説明されているアプローチを使用しようとしました。に対しては機能しますが、に対しては機能しUserAgentませんContentLength。設定してみましたHeaders

request.Headers["Content-length"] = Length;
request.Headers["User-agent"] = UserAgent;

ただし、「'Content-length'ヘッダーは、適切なプロパティまたはメソッドを使用して変更する必要があります」という例外が発生しました。

WinRTHeadersで実現されたホットセットは可能ですか?HttpWebRequest

4

1 に答える 1

12

HttpWebRequestWinRTでは非推奨のステータスになっています。以前の.NETプラットフォームで以前に変更できた一部のヘッダー値は、それを使用して変更できなくなりました。

これはHttpClient、シンプルなAPIと完全な非同期サポートを備えたHttpWebRequestの新しく改善された代替品のようです。

Content-Lengthを指定したいので、サーバーに何かをPOSTまたはPUTしようとしていると思います。その場合は、必要に応じてPostAsync()またはPutAsync()を使用することをお勧めします。

    var req = new HttpClient();
    req.DefaultRequestHeaders.Add("User-agent", UserAgent);
    req.DefaultRequestHeaders.Add("Content-length", Length);
    return await req.PostAsync(RequestURL, Body);

Content-lengthヘッダーは、Bodyの実際の長さに基づいてこれらのメソッドに自動的に含まれるため、おそらく実際には指定する必要はありませんが、どちらの方法でも試すことができます。

于 2012-06-12T17:11:39.053 に答える