求助,知道HTTP,Encoding相关的进来
uwp吧
全部回复
仅看楼主
level 10
PVZiphone 楼主
本人最近在帮某个网站做UWP应用,目前在做搜索的时候遇到了问题:
网站只支持GBK,GB2312编码,然而UWP默认Unicode,而且我也找不到地方修改HttpContent或HttpClient的编码,所以POST了请求之后网站收到乱码,所以就只能搜索英文。代码如下,望有大神帮我解决!谢谢!
using (HttpClient client = new HttpClient())
{
try
{
var kvp = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string,string>("searchkey", Value),
};
var headers = client.DefaultRequestHeaders;
string header = "Project LightN Market Novel Picker/1.3,Project LightN/0.5.2.83, Windows NT 10.0";
if (!headers.UserAgent.TryParseAdd(header))
{
}
header = “Project LightN”;
if (!headers.UserAgent.TryParseAdd(header))
{
}
HttpContent hc = new FormUrlEncodedContent(kvp);
hc.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
HttpResponseMessage response = await client.PostAsync(Url, hc);
if (response.EnsureSuccessStatusCode().StatusCode.ToString().ToLower() == "ok")
{
var stream = await response.Content.ReadAsStreamAsync();
StreamReader sr;
sr = new StreamReader(stream.AsInputStream().AsStreamForRead(), (await DBCSEncoding.GetDBCSEncoding("GB2312")));//这里的DBCSEncoding只能让我在获取网站返回的信息时可以用GB2312。
return await sr.ReadToEndAsync();
}
}
catch (HttpRequestException ex)
{
await new MessageDialog(ex.Message).ShowAsync();
return ex.Message;
}
return "Nothing get.";
2016年02月18日 02点02分 1
1