C# HTTP系列3 HttpWebRequest.ContentType属性
获取或设置请求的 Content-type
HTTP 标头的值。默认值为null
。
常见的请求内容类型为以下几种:
- /// <summary>
- /// HTTP 内容类型(Content-Type)
- /// </summary>
- public class HttpContentType
- {
- /// <summary>
- /// 资源类型:普通文本
- /// </summary>
- public const string TEXT_PLAIN = "text/plain";
- /// <summary>
- /// 资源类型:JSON字符串
- /// </summary>
- public const string APPLICATION_JSON = "application/json";
- /// <summary>
- /// 资源类型:未知类型(数据流)
- /// </summary>
- public const string APPLICATION_OCTET_STREAM = "application/octet-stream";
- /// <summary>
- /// 资源类型:表单数据(键值对)
- /// </summary>
- public const string WWW_FORM_URLENCODED = "application/x-www-form-urlencoded";
- /// <summary>
- /// 资源类型:表单数据(键值对)。编码方式为 gb2312
- /// </summary>
- public const string WWW_FORM_URLENCODED_GB2312 = "application/x-www-form-urlencoded;charset=gb2312";
- /// <summary>
- /// 资源类型:表单数据(键值对)。编码方式为 utf-8
- /// </summary>
- public const string WWW_FORM_URLENCODED_UTF8 = "application/x-www-form-urlencoded;charset=utf-8";
- /// <summary>
- /// 资源类型:多分部数据
- /// </summary>
- public const string MULTIPART_FORM_DATA = "multipart/form-data";
- }
提交的时候可以说明编码的方式,用来使对方服务器能够正确的解析。
该ContentType的属性包含请求的媒体类型。分配给ContentType属性的值在请求发送Content-type
HTTP标头时替换任何现有内容。
要清除Content-type
HTTP标头,请将ContentType属性设置为null
。
此属性的值存储在WebHeaderCollection中。如果设置了WebHeaderCollection,则属性值将丢失。
参考示例代码:
- private HttpResult Request(string url, string data, string method, string contentType)
- {
- HttpResult httpResult = new HttpResult();
- HttpWebRequest httpWebRequest = null;
- try
- {
- httpWebRequest = WebRequest.Create(url) as HttpWebRequest;
- httpWebRequest.Method = method;
- httpWebRequest.Headers = HeaderCollection;
- httpWebRequest.CookieContainer = CookieContainer;
- /*此属性的值存储在WebHeaderCollection中。如果设置了WebHeaderCollection,则属性值将丢失。
- *所以放置在Headers 属性之后设置
- */
- httpWebRequest.ContentType = contentType;
- httpWebRequest.UserAgent = _userAgent;
- httpWebRequest.AllowAutoRedirect = _allowAutoRedirect;
- httpWebRequest.ServicePoint.Expect100Continue = false;
- if (data != null)
- {
- httpWebRequest.AllowWriteStreamBuffering = true;
- using (Stream requestStream = httpWebRequest.GetRequestStream())
- {
- requestStream.Write(EncodingType.GetBytes(data), , data.Length);
- requestStream.Flush();
- }
- }
- HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
- if (httpWebResponse != null)
- {
- GetResponse(ref httpResult, httpWebResponse);
- httpWebResponse.Close();
- }
- }
- catch (WebException webException)
- {
- GetWebExceptionResponse(ref httpResult, webException);
- }
- catch (Exception ex)
- {
- GetExceptionResponse(ref httpResult, ex, method, contentType);
- }
- finally
- {
- if (httpWebRequest != null)
- {
- httpWebRequest.Abort();
- }
- }
- return httpResult;
- }
C# HTTP系列3 HttpWebRequest.ContentType属性的更多相关文章
- httpWebRequest.ContentType 属性、值 类型用法
httpWebRequest.ContentType 属性.值 类型用法 冰火战地 指定将数据回发到服务器时浏览器使用的编码类型.下边是说明: application/x-www-form-urlen ...
- C# HTTP系列7 HttpWebRequest.Method属性
系列目录 [已更新最新开发文章,点击查看详细] HttpWebRequest.Method属性,获取或设置请求的方法.用于联系 Internet 资源的请求方法. 默认值为 GET. Syst ...
- C# HTTP系列4 HttpWebRequest.CookieContainer属性
系列目录 [已更新最新开发文章,点击查看详细] HttpWebRequest.CookieContainer 获取或设置与此请求关联的 Cookie.默认情况下CookieContainer ...
- C# HTTP系列1 HttpWebRequest类
系列目录 [已更新最新开发文章,点击查看详细] .NET Framework 中 System.Net 命名空间下提供了 HttpWebRequest 和 HttpWebResponse 2个 ...
- 问题:request.Headers;结果:HttpWebRequest.Headers 属性
指定构成 HTTP 标头的名称/值对的集合. Headers 集合包含与请求关联的协议标头.下表列出了由系统或由属性或方法设置但未存储在 Headers 中的 HTTP 标头. 标头 设置方 Ac ...
- C# HTTP系列5 HttpWebResponse.StatusCode属性
系列目录 [已更新最新开发文章,点击查看详细] HttpWebResponse.StatusCode 属性获取响应的状态.对应 HttpStatusCode 枚举值之一. HttpStatus ...
- Struts2 contentType属性列表
Struts2 contentType属性列表 博客分类: Struts 2 'ez' => 'application/andrew-inset', 'hqx' => 'applica ...
- 深入理解javascript函数系列第三篇——属性和方法
× 目录 [1]属性 [2]方法 前面的话 函数是javascript中的特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本 ...
- HttpWebRequest.ReadWriteTimeout 属性
获取或设置写入或读取流时的超时. 属性值在写入超时或读取超时之前的毫秒数.默认值为 300,000 毫秒(5 分钟). 备注 在写入由 GetRequestStream 方法返回的流时,或在读取由 G ...
随机推荐
- Java面试- JVM 内存模型讲解
经常有人会有这么一个疑惑,难道 Java 开发就一定要懂得 JVM 的原理吗?我不懂 JVM ,但我照样可以开发.确实,但如果懂得了 JVM ,可以让你在技术的这条路上走的更远一些. JVM 的重要性 ...
- HTML教程详解
HTML学习笔记 目录 一.html简介 1.html是什么? 2.html能做什么(html的作用)? 3.html书写规范 二.html基本标签 1.标签的语法 2.标签的分类 3.常用标签: 1 ...
- Delphi - DateTimePicker控件日期格式
设置成显示年.月.日.时.分.秒 1:将DateTimePicker的Format属性中加入日期格式设成 'yyyy-MM-dd HH:mm:ss',注意日期里月份对应的MM是大写,时间里的分钟对应的 ...
- Oracle - 数字处理 - 取上取整、向下取整、保留N位小数、四舍五入、数字格式化
用oracle sql对数字进行操作: 取上取整.向下取整.保留N位小数.四舍五入.数字格式化 取整(向下取整): select floor(5.534) from dual; select trun ...
- centos7安装mysql5.7(rpm安装版)
1.下载mysql5.7的rpm安装包 rpm的mysql包,安装起来简单,解压版的mysql还需要做许多配置,稍有不慎就会出错!!! 下载地址:https://dev.mysql.com/downl ...
- SPFA板子
#pragma GCC optimize(3) #include <bits/stdc++.h> using namespace std; ; vector<pair<int, ...
- python基础-内置函数 isinstance() 与 issubclass()
面向对象编程之内置函数 isinstance() 与 issubclass() isinstance():判断一个对象是否是另一个类的实例.返回bool值,True表示是,False表示不是. 语法: ...
- 3-10 Pandas 常用操作
1.构造数据 In [1]: import pandas as pd data=pd.DataFrame({'group':['a','a','a','b','b','b','c','c','c' ...
- bert剪枝系列——Are Sixteen Heads Really Better than One?
1,概述 剪枝可以分为两种:一种是无序的剪枝,比如将权重中一些值置为0,这种也称为稀疏化,在实际的应用上这种剪枝基本没有意义,因为它只能压缩模型的大小,但很多时候做不到模型推断加速,而在当今的移动设备 ...
- python实验脚本
day1 1. 任性猜数字 需求 : 猜数字, 猜3次.如果对了 就直接退出. 如果3次都错了 ,就询问 要不要继续. 实现点: 使用 whie 循环. count 进行计数.如果count > ...