C# HTTP系列3 HttpWebRequest.ContentType屬性

獲取或設置請求的 Content-type HTTP 標頭的值。默認值爲nullhtml

常見的請求內容類型爲如下幾種:web

 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 }

提交的時候能夠說明編碼的方式,用來使對方服務器可以正確的解析。json

ContentType的屬性包含請求的媒體類型。分配給ContentType屬性的值在請求發送Content-typeHTTP標頭時替換任何現有內容。api

要清除Content-typeHTTP標頭,請將ContentType屬性設置爲null服務器

此屬性的值存儲在WebHeaderCollection中。若是設置了WebHeaderCollection,則屬性值將丟失。 app

 參考示例代碼:編碼

 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 }

 

相關文章
相關標籤/搜索