對於POST請求,我回到text/html的格式和響應體包含以下信息的響應:text/html的VS應用程序/ x-WWW窗體-urlencoded和FormUrlEncodedMediaTypeFormatter
組oauth_token = XXXXXXXXXXXXXXXXXXXXXXXXX & oauth_token_secret = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX & oauth_callback_confirmed =真
我通過System.Net.Http.HttpClient
了此請求和我throught我可以讀取響應機智h FormUrlEncodedMediaTypeFormatter
as FormDataCollection
但事實證明FormUrlEncodedMediaTypeFormatter
默認只支持application/x-www-form-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 });
}
這裏的問題是:
是響應供應商(在這種情況下,Twitter等)發送該響應,文本做錯了/ html或應FormUrlEncodedMediaTypeFormatter
支持text/html默認類型?
什麼是您在POST中的Accept Header? – 2012-07-29 13:51:55
@AlexanderZeitler這是一個非常明智的評論。沒有,我沒有發送任何迴應。我會盡量明確,看看這次給了我什麼。 – tugberk 2012-07-29 13:53:45
順便說一下,你不會迴應'application/x-www-form-urlencoded',因爲FormUrlEncodedMediaTypeFormatter不能寫任何東西。它是隻讀的,你可以看看[CanWriteType方法](https://aspnetwebstack.codeplex.com/SourceControl/changeset/view/012d90328619#src%2fSystem.Net.Http.Formatting%2fFormatting%2fFormUrlEncodedMediaTypeFormatter。cs) – 2012-07-29 13:56:16