获取或设置请求的 Content-type
HTTP 标头的值。默认值为null
。
常见的请求内容类型为以下几种:
1 /// <summary> 2 /// HTTP 内容类型(Content-Type) 3 /// </summary> 4 public class HttpContentType 5 { 6 /// <summary> 7 /// 资源类型:普通文本 8 /// </summary> 9 public const string TEXT_PLAIN = "text/plain"; 10 11 /// <summary> 12 /// 资源类型:JSON字符串 13 /// </summary> 14 public const string APPLICATION_JSON = "application/json"; 15 16 /// <summary> 17 /// 资源类型:未知类型(数据流) 18 /// </summary> 19 public const string APPLICATION_OCTET_STREAM = "application/octet-stream"; 20 21 /// <summary> 22 /// 资源类型:表单数据(键值对) 23 /// </summary> 24 public const string WWW_FORM_URLENCODED = "application/x-www-form-urlencoded"; 25 26 /// <summary> 27 /// 资源类型:表单数据(键值对)。编码方式为 gb2312 28 /// </summary> 29 public const string WWW_FORM_URLENCODED_GB2312 = "application/x-www-form-urlencoded;charset=gb2312"; 30 31 /// <summary> 32 /// 资源类型:表单数据(键值对)。编码方式为 utf-8 33 /// </summary> 34 public const string WWW_FORM_URLENCODED_UTF8 = "application/x-www-form-urlencoded;charset=utf-8"; 35 36 /// <summary> 37 /// 资源类型:多分部数据 38 /// </summary> 39 public const string MULTIPART_FORM_DATA = "multipart/form-data"; 40 }
提交的时候可以说明编码的方式,用来使对方服务器能够正确的解析。
该ContentType的属性包含请求的媒体类型。分配给ContentType属性的值在请求发送Content-type
HTTP标头时替换任何现有内容。
要清除Content-type
HTTP标头,请将ContentType属性设置为null
。
此属性的值存储在WebHeaderCollection中。如果设置了WebHeaderCollection,则属性值将丢失。
参考示例代码:
1 private HttpResult Request(string url, string data, string method, string contentType) 2 { 3 HttpResult httpResult = new HttpResult(); 4 HttpWebRequest httpWebRequest = null; 5 6 try 7 { 8 httpWebRequest = WebRequest.Create(url) as HttpWebRequest; 9 httpWebRequest.Method = method; 10 httpWebRequest.Headers = HeaderCollection; 11 httpWebRequest.CookieContainer = CookieContainer;
12 /*此属性的值存储在WebHeaderCollection中。如果设置了WebHeaderCollection,则属性值将丢失。 13 *所以放置在Headers 属性之后设置 14 */ 15 httpWebRequest.ContentType = contentType; 16 httpWebRequest.UserAgent = _userAgent; 17 httpWebRequest.AllowAutoRedirect = _allowAutoRedirect; 18 httpWebRequest.ServicePoint.Expect100Continue = false; 19 20 if (data != null) 21 { 22 httpWebRequest.AllowWriteStreamBuffering = true; 23 using (Stream requestStream = httpWebRequest.GetRequestStream()) 24 { 25 requestStream.Write(EncodingType.GetBytes(data), 0, data.Length); 26 requestStream.Flush(); 27 } 28 } 29 30 HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse; 31 if (httpWebResponse != null) 32 { 33 GetResponse(ref httpResult, httpWebResponse); 34 httpWebResponse.Close(); 35 } 36 } 37 catch (WebException webException) 38 { 39 GetWebExceptionResponse(ref httpResult, webException); 40 } 41 catch (Exception ex) 42 { 43 GetExceptionResponse(ref httpResult, ex, method, contentType); 44 } 45 finally 46 { 47 if (httpWebRequest != null) 48 { 49 httpWebRequest.Abort(); 50 } 51 } 52 53 return httpResult; 54 }