C# HttpRequest 中文编码问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# HttpRequest 中文编码问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3319字,纯文字阅读大概需要5分钟。
内容图文
GET方法:
public string DoWebRequest(string url) { HttpWebResponse webResponse = null; HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); webRequest.Method = "POST"; string responseStr = null; webRequest.Timeout = 50000; webRequest.ContentType = "text/html; charset=gb2312"; try { //尝试获得要请求的URL的返回消息 webResponse = (HttpWebResponse)webRequest.GetResponse(); } catch (WebException e) { //发生网络错误时,获取错误响应信息 responseStr = "发生网络错误!请稍后再试"; } catch (Exception e) { //发生异常时把错误信息当作错误信息返回 responseStr = "发生错误:" + e.Message; } finally { if (webResponse != null) { //获得网络响应流 using (StreamReader responseReader = new StreamReader(webResponse.GetResponseStream(), Encoding.GetEncoding("GB2312"))) { responseStr = responseReader.ReadToEnd();//获得返回流中的内容 } webResponse.Close();//关闭web响应流 } } return responseStr; }
注意:url中的中文,要先用HttpUtility.UrlEncode("内容",编码) 用服务器接收的编码,编码一下。
POST方法:
private string DoWebRequestByPost(string url, string param) { HttpWebResponse webResponse = null; HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); //使用post方式提交 webRequest.Method = "POST"; string responseStr = null; webRequest.Timeout = 50000; //要post的字节数组 byte[] postBytes = encoding.GetBytes(param); webRequest.ContentType = "application/x-www-form-urlencoded;"; webRequest.ContentLength = postBytes.Length; using (Stream reqStream = webRequest.GetRequestStream()) { reqStream.Write(postBytes, 0, postBytes.Length); } try { //尝试获得要请求的URL的返回消息 webResponse = (HttpWebResponse)webRequest.GetResponse(); } catch (Exception) { //出错后直接抛出 throw; } finally { if (webResponse != null) { //获得网络响应流 using (StreamReader responseReader = new StreamReader(webResponse.GetResponseStream(), encoding)) { responseStr = responseReader.ReadToEnd();//获得返回流中的内容 } webResponse.Close();//关闭web响应流 } } return responseStr; }
encoding为服务器接收的编码,例如:Encoding.GetEncoding("GBK")等
param post请求的参数 param1=123¶m2=中国¶m3=abc 这样的格式,中文部分不用使用编码,方法内转成byte[]时 会进行编码。
出现中文乱码问题,服务器返回的contentType编码类型 和 你接受数据的编码类型 不一样造成的
内容总结
以上是互联网集市为您收集整理的C# HttpRequest 中文编码问题全部内容,希望文章能够帮你解决C# HttpRequest 中文编码问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。