post 报文请求接口方法
/// <summary>
/// post 报文到接口服务器
/// </summary>
/// <param name="targetUri">路径</param>
/// <param name="content">提交的报文</param>
/// <returns>返回报文</returns>
public static string PostData(string targetUri, string content)
{
HttpWebRequest httpRequest = null;
HttpWebResponse hwr = null;
System.IO.Stream requestStream = null;
System.IO.Stream responseStream = null; try
{
Encoding encoding = Encoding.GetEncoding("utf-8");
byte[] bytesToPost = encoding.GetBytes(content); string cookieheader = string.Empty; CookieContainer cookieCon = new CookieContainer(); System.GC.Collect(); //垃圾回收
System.Net.ServicePointManager.DefaultConnectionLimit = ; //允许的最大并发数 #region 创建HttpWebRequest对象
httpRequest = (HttpWebRequest)WebRequest.Create(targetUri);
#endregion #region 初始化HtppWebRequest对象 httpRequest.CookieContainer = cookieCon;
httpRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
httpRequest.ContentType = "application/x-www-form-urlencoded";
httpRequest.Method = "POST";
httpRequest.Headers.Add("Accept-Encoding", "gzip, deflate"); if (cookieheader.Equals(string.Empty))
{
cookieheader = httpRequest.CookieContainer.GetCookieHeader(new Uri(targetUri));
}
else
{
httpRequest.CookieContainer.SetCookies(new Uri(targetUri), cookieheader);
}
#endregion #region 附加Post给服务器的数据到HttpWebRequest对象
httpRequest.ContentLength = bytesToPost.Length;
requestStream = httpRequest.GetRequestStream();
requestStream.Write(bytesToPost, , bytesToPost.Length);
requestStream.Close();
#endregion #region 读取服务器返回信息 hwr = (HttpWebResponse)httpRequest.GetResponse();
string xzip = hwr.ContentEncoding; responseStream = hwr.GetResponseStream();
string stringResponse = "";
if (xzip == "gzip")
{
//压缩,进行解压缩处理
}
else
{
using (System.IO.StreamReader responseReader = new System.IO.StreamReader(responseStream, Encoding.UTF8))
{
stringResponse = responseReader.ReadToEnd();
}
} #endregion return stringResponse;
}
catch (Exception ex)
{
return "";
}
finally
{
#region 关闭相应连接
if (requestStream != null)
{
requestStream.Close();
requestStream = null;
}
if (responseStream != null)
{
responseStream.Close();
responseStream = null;
}
if (hwr != null)
{
hwr.Close();
hwr = null;
}
if (httpRequest != null)
{
httpRequest.Abort();
httpRequest = null;
}
#endregion
}
}
post 报文请求接口方法的更多相关文章
- webServices  使用GET请求接口方法
		
webServices 若要使用GET请求接口方法在Web.config 下添加这段 <webServices> <protocols> <add ...
 - vue打包之后动态修改请求接口方法
		
1.可以根据自身情况封装获取配置文件接口信息 1.1我在static中新建一个config.json配置文件 { "DEV_URL":"/apis",//开发模 ...
 - C# 动态创建SQL数据库(二)  在.net core web项目中生成二维码  后台Post/Get 请求接口 方式  WebForm 页面ajax 请求后台页面 方法  实现输入框小数多 自动进位展示,编辑时实际值不变  快速掌握Gif动态图实现代码  C#处理和对接HTTP接口请求
		
C# 动态创建SQL数据库(二) 使用Entity Framework 创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...
 - curl请求的get.post.put.delete对接其他系统接口方法
		
class HttpCurl{ //控客云平台的appid private $appId = xxxxxx; //控客云平台的appkey private $appKey = 'xxxxxxxxxxx ...
 - PHP防止被重复请求接口的方法(网页端签名验证的方法)
		
PHP防止被重复请求接口的方法(网页端签名验证的方法) 可以采取签名验证的方式来 解决这个问题 1 time和随机数都是PHP生成的显示在前端 2 前端生成sign 3 进行每次请求的sign计数 这 ...
 - 项目二(业务GO)——跨域上传图片(请求接口)
		
之前,就听过“跨域上传”图片的问题,只是疏于研究,也就一再搁置,直至今天再次遇见这个不能避免的“坑”,才不得不思考一下,怎么“跨域上传”图片或者文件? 问题来源: 何为“跨域”? ——就是给你一个接口 ...
 - iOS开发-网络-合理封装请求接口
		
概述 如今大多App都会与网络打交道,作为开发者,合理的对网络后台请求接口进行封装十分重要.本文要介绍的就是一种常见的采用回调函数(方法)的网络接口封装,也算的是一种构架吧. 这个构架主要的idea是 ...
 - Nginx反向代理、CORS、JSONP等跨域请求解决方法总结
		
由于 Javascript 同源策略的存在使得一个源中加载来自其它源中资源的行为受到了限制.即会出现跨域请求禁止. 通俗一点说就是如果存在协议.域名.端口或者子域名不同服务端,或一者为IP地址,一者为 ...
 - axios请求接口的踩坑之路
		
1.跨域问题除了前端安装插件还需要后端php设置,设置如下 Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, ...
 
随机推荐
- JAVA_build_ant_sed
			
1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下 ...
 - word2vec的艰难成长史
			
1.首先在网站上面下载gensim,我是在11服务器上面下载的 2.使用winpython打开 3.在command windows 下使用pip install gensim这句话进行,原先使用这句 ...
 - XML解析之dom4j
			
一.XML解析方式有两类: 一]DOM(文档对象模型) 1)一次性将整个XML文件读到内存,形成一颗DOM树 二]SAX(XML的简单API)[sim ...
 - DOCKER,需要进入生产实践
			
先玩起... 以下初级问题的解决: docker -dINFO[0000] +job serveapi(unix:///var/run/docker.sock) INFO[0000] WARNING: ...
 - 自制单片机之十五……可串行驱动LCD12864的应用
			
在网上搜了一下,ST7920控制器的LCD产品可以提供8位,4位并行和串行接口可选,并行的控制接口的LCD较多,前面的贴子也介绍过,我们在这儿不说了,这儿我们讲的是串口控制LCD12864. 买了块S ...
 - 复制文件时,如何显示进度条(使用TFileStream一点一点读,或者使用BlockRead)
			
procedure mycopyfile(sourcef,targetf:string;i:integer); var FromF,ToF:file; NumRead,NumWritten:Integ ...
 - Cmake调用NSIS(一个可执行文件,其实就是一个编译器)编译NSIS脚本问题研究
			
技术经理说,可以用Cmake当中的add_custom_command,add_custom_target命令来使用. 我初次研究了下,add_custom_command应该用官方文档中说明的第二种 ...
 - sizeof(long)
			
16位系统:long是4字节,int是2字节32位系统:long是4字节,int是4字节64位系统:long是8字节,int是4字节
 - poj 2376 Cleaning Shifts(贪心)
			
Description Farmer John <= N <= ,) cows to <= T <= ,,), the first being shift and the la ...
 - Hash表题目整数hash-HDOJ1425(转载)
			
哈希表(散列表)的基本原理:使用一个下标范围比较大的数组来存储元素,一般通过设计一个函数(哈希函数,即散列函数),使得每个元素的关键字都与一个函数值(即数组下标)相对应,然后用该数组单元来存储对应 ...