C#HTTP请求之POST请求和GET请求
POST请求
/// <summary>
/// POST请求获取信息
/// </summary>
/// <param name="url"></param>
/// <param name="paramData"></param>
/// <returns></returns>
public string POST(string url, string paramData, int timeout = , List<System.Net.Cookie> cookies = null)
{
string ret = string.Empty;
try
{
byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(paramData); //转化
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(url));
if (url.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
{
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(ValidateServerCertificate); //rcvc;
webReq.ProtocolVersion = HttpVersion.Version10;
}
SetProxy(ref webReq);
webReq.Method = "POST";
webReq.ContentType = "application/json; charset=utf-8";
webReq.ServicePoint.Expect100Continue = false;
//webReq.ContentType = "text/html;charset=utf-8";
webReq.Timeout = timeout;
webReq.ContentLength = byteArray.Length; if (!string.IsNullOrEmpty(UserAgent))
webReq.UserAgent = UserAgent;
if (cookies != null && cookies.Count > )
{
webReq.CookieContainer = new CookieContainer(); string host = new Uri(url).Host;
foreach (System.Net.Cookie c in cookies)
{
c.Domain = host;
webReq.CookieContainer.Add(c);
}
}
Stream newStream = webReq.GetRequestStream();
newStream.Write(byteArray, , byteArray.Length);//写入参数
newStream.Close();
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
ret = sr.ReadToEnd();
sr.Close();
response.Close();
newStream.Close();
}
catch (Exception ex)
{
ClassLoger.Error(ex, "HttpUtils/POST", url);
throw ex;
}
return ret;
}
GET请求
/// <summary>
/// GET请求获取信息
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public string GET(string url, int timeout = , List<System.Net.Cookie> cookies = null)
{
string ret = string.Empty;
try
{
HttpWebRequest web = (HttpWebRequest)HttpWebRequest.Create(url);
if (url.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
{
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(ValidateServerCertificate); //rcvc;
web.ProtocolVersion = HttpVersion.Version10;
}
SetProxy(ref web);
web.Method = "GET";
web.Timeout = timeout;
if (!string.IsNullOrEmpty(UserAgent))
web.UserAgent = UserAgent;
if (cookies != null && cookies.Count > )
{
web.CookieContainer = new CookieContainer(); string host = new Uri(url).Host;
foreach (System.Net.Cookie c in cookies)
{
c.Domain = host;
web.CookieContainer.Add(c);
}
}
HttpWebResponse res = (HttpWebResponse)web.GetResponse();
Stream s = res.GetResponseStream();
StreamReader sr = new StreamReader(s, Encoding.UTF8);
ret = sr.ReadToEnd();
sr.Close();
res.Close();
s.Close();
//ClassLoger.Error("HttpUtils/GET",url+" "+ ret);
}
catch (Exception ex)
{
ClassLoger.Error(ex, "HttpUtils/GET", url);
throw ex;
}
return ret;
}
C#HTTP请求之POST请求和GET请求的更多相关文章
- axios中出现两次请求,OPTIONS请求和GET请求
在项目中发现ajax中出现两次请求,OPTIONS请求和GET请求 查看到浏览器NetWork有两次请求,请求url一样: 查找原因是浏览器对简单跨域请求和复杂跨域请求的处理区别. XMLHttpRe ...
- 转:PHP中的使用curl发送请求(GET请求和POST请求)
原文地址:http://www.jb51.net/article/104974.htm 使用CURL发送请求的基本流程 使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤: 1.初始 ...
- 简单介绍HTTP的请求(get请求和post请求)以及对应的响应的内容
链接解析: https://oa.hbgf.net.cn/login.jsp;jsessionid=47084322738F8DB18D60752944DFD1AA http或者https表示使用的是 ...
- 浅说Get请求和Post请求
Web 上最常用的两种 Http 请求就是 Get 请求和 Post 请求了.我们在做 java web 开发时,也总会在 servlet 中通过 doGet 和 doPost 方法来处理请求:更经常 ...
- JSP、Servlet中get请求和post请求的区别总结
在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...
- Ajax中get请求和post请求
我们在使用Ajax向服务器发送数据时,可以采用Get方式请求服务器,也可以使用Post方式请求服务器,那么什么时候该采用Get方式,什么时候该采用Post方式呢? Get请求和Post请求的区别: 1 ...
- slave IO流程之二:注册slave请求和dump请求
slave IO流程已经在http://www.cnblogs.com/onlyac/p/5815566.html中有介绍 这次我们要探索注册slave请求和dump请求的报文格式和主要流程. 一.注 ...
- loadrunner录制脚本如何选择使用get请求和post请求的方式
在loadrunner工具里录制脚本时常常会用到get请求和post请求,有关loadrunner常用的这两类的请求主要有: get请求: web_url 和 web_link post请求: web ...
- iOS开发网络篇—GET请求和POST请求
iOS开发网络篇—GET请求和POST请求 一.GET请求和POST请求简单说明 创建GET请求 // 1.设置请求路径 NSString *urlStr=[NSString stringWithFo ...
随机推荐
- html跳动的心实现代码
<style> .box{ width: 200px; height: 400px; positio ...
- 知识点---前端处理支持emoji表情
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- windows上不能启动Apache,遇到错误的方法之一
最近在2008服务器上安装apache,出现了No installed ConfigArgs for the service "Apache2.4"这个错误. 启动不了,重装了一样 ...
- 学习TestNG,乍暖还寒冷时
时间:2019年2月23日,农历正月十九,星期六,天气晴,略有阳光,但下午三点多就不见阳光了. 地点:上海 昨夜雨疏风骤,浓睡不消残酒.试问卷帘人,却道海棠依旧.知否?知否?应是绿肥红瘦 是的,魔都上 ...
- 洛谷P3655 差分数组 树状数组
题目链接:https://www.luogu.org/problemnew/show/P3655 不一定对,仅供参考,不喜勿喷,不喜勿喷. 先copy洛谷P3368 [模板]树状数组 2 题解里面一位 ...
- XACT_ABORT选项
XACT_ABORT选项用于指定当SQL语句出现运行时错误时,SQL Server是否自动回滚到当前事务.其语法格式如下所示: SET XACT_ABORT{ON|OFF} 当SET XACT_ABO ...
- 使用syslog服务器存储cp防火墙日志配置
版本:R80.20 step1:创建syslog 服务器,如下图: step2:配置syslog 服务器,如下图: step3:配置网关日志服务器,添加设定的syslog服务器,如下图: st ...
- 转:Jmeter分布式测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能. 一.Jmeter分 ...
- 通信导论-IP数据网络基础(1)
TCP/IP封装过程: 端口号:服务器一般都是通过知名端口号(1~1023)来识别应用程序,(TCP)21.23.25,(UDP)53.69.161 TCP报文格式: 字节号:TCP把连接中发送的所有 ...
- 关于servelt的相关介绍
1.@WebServlet注解的作用 在Servlet 3.0中,使用@WebServlet注解可实现servlet和url的映射,它告知容器哪些Servlet会提供服务以及额外信息,其作用相当于之前 ...