POST 要求の場合、text/html形式の応答が返され、応答本文には以下の情報が含まれていました。
oauth_token=XXXXXXXXXXXXXXXXXXXXXXXXX&oauth_token_secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&oauth_callback_confirmed=true
私はこのリクエストを実行し、 asSystem.Net.Http.HttpClient
で応答を読み取ることができると思いましたが、デフォルトでapplication/x-www-form-urlencoded形式のみをサポートしていることが判明しました。そのため、次のコードでこれを回避しました。FormUrlEncodedMediaTypeFormatter
FormDataCollection
FormUrlEncodedMediaTypeFormatter
using (OAuthHttpClient client = new OAuthHttpClient(creds)) {
var response = await client.PostAsync(requestUri, new EmptyContent());
var formatter = new FormUrlEncodedMediaTypeFormatter();
formatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
var result = await response.Content.ReadAsAsync<FormDataCollection>(new List<MediaTypeFormatter>() { formatter });
}
ここでの質問は次のとおりです。
応答プロバイダー (この場合は Twitter) は、この応答をtext/htmlとして送信することで間違っていますか、それともデフォルトでtext/htmlタイプをFormUrlEncodedMediaTypeFormatter
サポートする必要がありますか?