На запрос POST я получил ответ в формате text/html , а тело ответа содержало следующую информацию:
oauth_token=XXXXXXXXXXXXXXXXXXXXXXXXX&oauth_token_secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&oauth_callback_confirmed=true
Я сделал этот запрос через System.Net.Http.HttpClient
и я мог прочитать ответ с FormUrlEncodedMediaTypeFormatter
как FormDataCollection
, но оказалось, что FormUrlEncodedMediaTypeFormatter
поддерживает только форму application/x -www --. ] urlencoded формат по умолчанию. Так,Я работал над этим с помощью следующего кода:
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 });
}
Вопрос здесь:
Является ли поставщик ответа (в данном случае Твиттером ), который делает это неправильно, отправляя этот ответ как text/html или должен FormUrlEncodedMediaTypeFormatter
поддерживать тип text/html по По умолчанию?