对于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