代码:
public string PostWebRequest(string posturl,string paramdata,Encoding dataencod)
{
string ret = string.Empty;
try
{
//字节数组用来接收以 (例如utf-8西欧英文编码)重新编码的字节数组
//GetBytes()方法 将指定字符串中的所有字符编码为一个字节数组
byte[] byteArry = dataencod.GetBytes(paramdata);
//WebRequest 类为向统一资源定位符发出的请求
//HttpWebRequest 外发请求,可以发出一个HTTP请求,干的活,比较多,可以模拟一个独立的客户端,向网站发送请求。
HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(new Uri(posturl));
webreq.Method = "post";
//数据类型 以下表单的提交数据的格式也是默认格式(不设置即为该值) 即 键值对类型
webreq.ContentType = "application/x-www-form-urlencoded";
/*ContentLength 要发送到 Internet 资源的数据的字节数。 默认值为 -1,
* 该值指示尚未设置该属性,并且没有要发送的请求数据
* http的GET请求时,不要手动设置ContentLength的值,不需要, 这句会自动算出,post是必须的
*/
webreq.ContentLength = byteArry.Length;
/* webreq.Proxy 如果你没有一个代理,你必须设置代理属性为空的所有Web客户端和WebRequest对象。
* 否则,框架可能会尝试“自动检测”您的代理设置,最多可为您的请求添加30秒。
* 如果你想知道为什么你的Web请求执行得很慢,这很可能是它!
*/
webreq.Proxy = null;
/*
* GetRequestStream 方法会 尝试“自动检测”您的代理设置 最多30秒 ,
* 用法:获取用于写入请求数据的 Stream 对象,返回值为stream。
*/
Stream newstream = webreq.GetRequestStream();
/*
*将数据写入流
* Write(byte[] buffer, int offset, int count);
* buffer--字节数组
* offset--偏移量 简单来说就是从多少号字符开始写入,前面的舍弃不写入
* count 字节数组长度
*/
newstream.Write(byteArry, 0, byteArry.Length);
//关闭流
newstream.Close();
/*HttpWebResponse 类用于生成发送 HTTP 请求和接收 HTTP 响应的 HTTP 独立客户端应用程序
* WebResponse 类提供来自统一资源标识符 (URI) 的响应
* GetResponse()--返回来自 Internet 资源的响应。返回值类型:System.Net.WebResponse
*/
HttpWebResponse response =(HttpWebResponse) webreq.GetResponse();
/*
* StreamReader 类实现一个 System.IO.TextReader,使其以一种特定的编码从字节流中读取字符
* StreamReader()实例化 以流和编码方式
* GetResponseStream()-- 获取流,该流用于读取来自服务器的响应的体。
* 和GetRequestStream()--获取用于写入请求数据的 Stream 对象
* 用法相反
*/
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default);
//ReadToEnd()--从流的当前位置到末尾读取所有字符
ret = sr.ReadToEnd();
sr.Close();
response.Close();
}
catch (Exception)
{
throw;
}
return ret;
}
方法的三个参数依次是:
posturl:请求地址,
paramdata:参数,
dataencod:编码方式
文中提到的数据格式:
常见的媒体格式类型如下:
- text/html : HTML格式
- text/plain :纯文本格式
- text/xml : XML格式
- image/gif :gif图片格式
- image/jpeg :jpg图片格式
- image/png:png图片格式
以application开头的媒体格式类型:
- application/xhtml+xml :XHTML格式
- application/xml : XML数据格式
- application/atom+xml :Atom XML聚合格式
- application/json : JSON数据格式
- application/pdf :pdf格式
- application/msword : Word文档格式
- application/octet-stream : 二进制流数据(如常见的文件下载)
- application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
另外一种常见的媒体格式是上传文件之时使用的:
- multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式
以上就是我们在日常的开发中,经常会用到的若干content-type的内容格式