获取或设置请求的 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-typeHTTP标头时替换任何现有内容。

要清除Content-typeHTTP标头,请将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), , 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. }

C# HTTP系列3 HttpWebRequest.ContentType属性的更多相关文章

  1. httpWebRequest.ContentType 属性、值 类型用法

    httpWebRequest.ContentType 属性.值 类型用法 冰火战地 指定将数据回发到服务器时浏览器使用的编码类型.下边是说明: application/x-www-form-urlen ...

  2. C# HTTP系列7 HttpWebRequest.Method属性

    系列目录     [已更新最新开发文章,点击查看详细] HttpWebRequest.Method属性,获取或设置请求的方法.用于联系 Internet 资源的请求方法. 默认值为 GET. Syst ...

  3. C# HTTP系列4 HttpWebRequest.CookieContainer属性

    系列目录     [已更新最新开发文章,点击查看详细] HttpWebRequest.CookieContainer 获取或设置与此请求关联的 Cookie.默认情况下CookieContainer  ...

  4. C# HTTP系列1 HttpWebRequest类

    系列目录     [已更新最新开发文章,点击查看详细] .NET Framework 中 System.Net 命名空间下提供了 HttpWebRequest 和 HttpWebResponse 2个 ...

  5. 问题:request.Headers;结果:HttpWebRequest.Headers 属性

    指定构成 HTTP 标头的名称/值对的集合. Headers 集合包含与请求关联的协议标头.下表列出了由系统或由属性或方法设置但未存储在 Headers 中的 HTTP 标头.   标头 设置方 Ac ...

  6. C# HTTP系列5 HttpWebResponse.StatusCode属性

    系列目录     [已更新最新开发文章,点击查看详细] HttpWebResponse.StatusCode 属性获取响应的状态.对应 HttpStatusCode 枚举值之一. HttpStatus ...

  7. Struts2 contentType属性列表

    Struts2 contentType属性列表 博客分类: Struts 2   'ez' => 'application/andrew-inset', 'hqx' => 'applica ...

  8. 深入理解javascript函数系列第三篇——属性和方法

    × 目录 [1]属性 [2]方法 前面的话 函数是javascript中的特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本 ...

  9. HttpWebRequest.ReadWriteTimeout 属性

    获取或设置写入或读取流时的超时. 属性值在写入超时或读取超时之前的毫秒数.默认值为 300,000 毫秒(5 分钟). 备注 在写入由 GetRequestStream 方法返回的流时,或在读取由 G ...

随机推荐

  1. Java面试- JVM 内存模型讲解

    经常有人会有这么一个疑惑,难道 Java 开发就一定要懂得 JVM 的原理吗?我不懂 JVM ,但我照样可以开发.确实,但如果懂得了 JVM ,可以让你在技术的这条路上走的更远一些. JVM 的重要性 ...

  2. HTML教程详解

    HTML学习笔记 目录 一.html简介 1.html是什么? 2.html能做什么(html的作用)? 3.html书写规范 二.html基本标签 1.标签的语法 2.标签的分类 3.常用标签: 1 ...

  3. Delphi - DateTimePicker控件日期格式

    设置成显示年.月.日.时.分.秒 1:将DateTimePicker的Format属性中加入日期格式设成 'yyyy-MM-dd HH:mm:ss',注意日期里月份对应的MM是大写,时间里的分钟对应的 ...

  4. Oracle - 数字处理 - 取上取整、向下取整、保留N位小数、四舍五入、数字格式化

    用oracle sql对数字进行操作: 取上取整.向下取整.保留N位小数.四舍五入.数字格式化 取整(向下取整): select floor(5.534) from dual; select trun ...

  5. centos7安装mysql5.7(rpm安装版)

    1.下载mysql5.7的rpm安装包 rpm的mysql包,安装起来简单,解压版的mysql还需要做许多配置,稍有不慎就会出错!!! 下载地址:https://dev.mysql.com/downl ...

  6. SPFA板子

    #pragma GCC optimize(3) #include <bits/stdc++.h> using namespace std; ; vector<pair<int, ...

  7. python基础-内置函数 isinstance() 与 issubclass()

    面向对象编程之内置函数 isinstance() 与 issubclass() isinstance():判断一个对象是否是另一个类的实例.返回bool值,True表示是,False表示不是. 语法: ...

  8. 3-10 Pandas 常用操作

      1.构造数据 In [1]: import pandas as pd data=pd.DataFrame({'group':['a','a','a','b','b','b','c','c','c' ...

  9. bert剪枝系列——Are Sixteen Heads Really Better than One?

    1,概述 剪枝可以分为两种:一种是无序的剪枝,比如将权重中一些值置为0,这种也称为稀疏化,在实际的应用上这种剪枝基本没有意义,因为它只能压缩模型的大小,但很多时候做不到模型推断加速,而在当今的移动设备 ...

  10. python实验脚本

    day1 1.  任性猜数字 需求 : 猜数字, 猜3次.如果对了 就直接退出. 如果3次都错了 ,就询问 要不要继续. 实现点: 使用 whie 循环. count 进行计数.如果count > ...