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, ...
随机推荐
- Android退出程序
public class ExitApplication extends Application { private static ExitApplication instance ; List< ...
- css 设置字体
CSS,font-family,好看常用的中文字体 例1(小米米官网):font-family: "Arial","Microsoft YaHei"," ...
- shell下 使用心得
打印时间的命令 date +'%F %k:%M:%d' crontab启动计划任务,注意两件事情: 1)crontab里启动的脚本,如果需要读取文件,需要使用绝对路径,或者在脚本里cd到目录所在的绝对 ...
- S3C2440 驱动程序开发
转载:http://www.cnblogs.com/lishixian/articles/2999923.html
- 编译Qt 4.7.3的时候发生NMAKE : fatal error U1077: 'cd' : return code '0x2'
怀疑是configure的时候没加-nomake demos -nomake examples的问题 references: http://stackoverflow.com/questions/10 ...
- java解析网页的内容
有时候,我们需要在java程序中获取一个连接,然后解析连接后,获取连接返回的内容结果来解析.准确的说是解析一个链接. 以下代码时解析百度首页的链接,获取的html代码的效果: public stati ...
- bzoj2346[Baltic 2011]Lamp
Description 2255是一个傻X,他连自己家灯不亮了都不知道. 某天TZ大神路过他家,发现了这一情况, 于是TZ开始行侠仗义了. TZ发现是电路板的问题, 他打开了电路板,发现线路根本没有连 ...
- paip.索引优化---sql distict—order by 法
paip.索引优化---sql distict—order by 法 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog ...
- python数据类型-布尔值
布尔是计算机里最基本的判断单位,布尔只有两个值:真或假,即True False,也就是1或0. 在以后学习流程控制时会经常用到布尔值. 先来看简单的小例子: >>> 1+1 > ...
- IOS Layer的使用
CALayer(层)是屏幕上的一个矩形区域,在每一个UIView中都包含一个根CALayer,在UIView上的所有视觉效果都是在这个Layer上进行的. CALayer外形特征主要包括: 1.层的大 ...