C# HttpWebRequest请求服务器(Get/Post兼容)

摘要:
=null){使用(varreader=newStreamReader(流)){result=reader.ReadToEnd();}}}}returnresult;}

简单示例说明

public static string HttpGet(string url, string data,string Method, int timeOut, Encoding encode, string contentType = "application/x-www-form-urlencoded", CookieContainer cookieContainer = null, string UserAgent = null)
{
string result = "";
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
try
{
webRequest.Method = Method;//请求方式Get/Post
webRequest.Timeout = timeOut;//超时时间(毫秒单位)
webRequest.ContentType = contentType;//请求参数格式
webRequest.Accept = "*/*";//http标头多个以;隔开例:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
webRequest.UserAgent = UserAgent;//可为空
webRequest.Headers.Add("Name", "admin");//添加http标头可多个
webRequest.Headers.Add("Type", "1");//添加http标头可多个
if (!string.IsNullOrEmpty(data))
{
byte[] buffer = encode.GetBytes(data); // 转化 encode编码格式例:Encoding.UTF8
webRequest.ContentLength = buffer.Length;
//写入提交数据
using (System.IO.Stream newStream = webRequest.GetRequestStream())
{
newStream.Write(buffer, 0, buffer.Length); //写入参数
newStream.Flush();
}
}
//提交请求
using (System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)webRequest.GetResponse())
{
if (cookieContainer != null)
{
response.Cookies = cookieContainer.GetCookies(response.ResponseUri);
}
//判断是否返回的是压缩信息
if (response.ContentEncoding.ToLower().Contains("gzip"))
{
using (GZipStream stream = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress))
{
using (StreamReader sreader = new StreamReader(stream))
{
result = sreader.ReadToEnd();
}
}
}
else
{
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream, encode))
{
result = reader.ReadToEnd();
}
}
}
}
}
catch (WebException ex)
{
LogHelper.WriteErrorLog("时间:" + DateTime.Now + "--路径" + url + "--错误:" + ex);//错误写入日志
var httpErrResponse = ((HttpWebResponse)ex.Response);
using (var stream = httpErrResponse.GetResponseStream())
{
if (stream != null)
{
using (var reader = new StreamReader(stream))
{
result = reader.ReadToEnd();
}
}
}
}
return result;
}

免责声明:文章转载自《C# HttpWebRequest请求服务器(Get/Post兼容)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇wpf prism加载独立模块实例javascript版万年历下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#调用WebService服务(动态调用)

一、创建WebService using System; using System.Web.Services; namespace WebService1 { /// <summary> /// Service1 的摘要说明 /// </summary> [WebService(Namespace...

Android之仿今日头条顶部导航栏效果

随着时间的推移现在的软件要求显示的内容越来越多,所以要在小的屏幕上能够更好的显示更多的内容,首先我们会想到底部菜单栏,但是有时候像今日头条新闻客户端要显示的内容太多,而且又想在主界面全部显示出来,所以有加了顶部导航栏。 今日头条顶部导航栏区域的主要部分是一个导航菜单。导航菜单是一组标签的集合,在新闻客户端中,每个标签标示一个新闻类别,对应下面ViewPag...

Java几种常用JSON库性能比较

本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能。 每次都在网上看到别人说什么某某库性能是如何如何的好,碾压其他的库。但是百闻不如一见,只有自己亲手测试过的才是最值得相信的。 JSON不管是在Web开发还是服务器开发中是相当常见的数据传输格式,一般情况我们对于JSON解析构造的性能并不需要过于关心,除非是在性能要求比较高的系统。 目前对于J...

聊聊OkHttp实现WebSocket细节,包括鉴权和长连接保活及其原理!

一、序 OkHttp 应该算是 Android 中使用最广泛的网络库了,我们通常会利用它来实现 HTTP 请求,但是实际上它还可以支持 WebSocket,并且使用起来还非常的便捷。 那本文就来聊聊,利用 OkHttp 实现 WebSocket 的一些细节,包括对 WebSocket 的介绍,以及在传输前如何做到鉴权、长连接保活及其原理。 二、WebSo...

WinForm控件设计:DataGridView的行统计实现 原文来自:http://www.cnblogs.com/yyj/archive/2010/10/21/1857518.html

//**************************************////////////////////////////////         #region 显示统计列        /// <summary>        /// 显示DataGridView的统计信息        /// </summary>...

一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL

一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL 介绍   不知道大家在使用 ASP.NET MVC 时有没有一些扩展要求,反正我是有很多。在使用 MVC 这几年(PS:我是从 1.0 开始学,2.0、3.0 开发至今),我深深地觉得 MVC 的扩展性真是太好了,几乎你大部分的“合理”需求,用 MVC 都能实现。好了,废话不多...