8

VS 11 Developer Preview で既存のアプリを Metro UI アプリに変換しようとしています。これは、WinRT ランタイムに対して実行することを意味します (間違っている場合は訂正してください)。これは、Windows 8 Developer Preview で実行されます。

特定のユーザー エージェントを設定する必要がある REST API を呼び出す必要があります。これは WInRT では不可能のようです。次の元のコードがあります。

_request = WebRequest.CreateHttp(url);
_request.UserAgent = UserAgent;

ただし、UserAgent プロパティは HttpWebRequest に対して定義されていません。私も試しました:

_request.Headers["User-Agent"] = UserAgent;

これにより、ランタイム例外が発生します: System.ArgumentException: このヘッダーは、適切なプロパティまたはメソッドを使用して変更する必要があります。

User-Agent ヘッダーを変更するにはどうすればよいですか?

4

2 に答える 2

17

いくつかいじくり回した後、WinRT でこれを行う方法を考え出しました。このバージョンでは、HttpWebRequest API が変更され、完全な .NET Framework よりも機能が大幅に低下しています。ただし、新しいHttpClientAPI を使用してリクエストを送信できます。これにより、ユーザー エージェント ヘッダーを送信できます。

var req = new HttpClient(handler)
var message = new HttpRequestMessage(HttpMethod.Get, url);
message.Headers.Add("User-Agent", "myCustomUserAgent");
var response = await req.SendAsync(message);
于 2011-09-17T17:25:00.347 に答える
1

Windows 10では、質問の例とまったく同じように実行できることに注意してください。

于 2015-10-04T22:22:26.923 に答える