C# Httpclient编程
来源:互联网 发布:月球数据 编辑:程序博客网 时间:2024/06/11 14:24
今天研究了一天C#如何添加cookie到httpcient里面,从而发请求时,能把cookie作为头部发出,最后发现根本加不进去。
Httpclient的cookie是来自上一个请求的响应,httpclient会自动把上一个请求的响应里面的cookie保存起来,所以当发送几个有关联的request,就必须要用同一个Httpclient
示例:
//第一个请求
HttpClient client = new HttpClient();
// 为JSON格式添加一个Accept报头
//client.DefaultRequestHeaders.Accept.Add(
// new MediaTypeWithQualityHeaderValue("application/json"));
string strDecodeBody = HttpUtility.UrlEncode(strBody);
HttpContent content = new StringContent(strDecodeBody);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0");
client.DefaultRequestHeaders.Add("Authentication", "123");
HttpResponseMessage response = null;
response = client.PostAsync(strIP, content).Result;
if (response != null)
{
if (expectCode == HttpStatusCode.OK)
{
var resultValue = response.Content.ReadAsStringAsync().Result;
string strResponse = HttpUtility.UrlDecode(resultValue.ToString());
string[] strCookies = (string[])response.Headers.GetValues("Set-Cookie");
if(strCookies.Length>0)
{
strCookie = strCookies[0].Substring(0, strCookies[0].IndexOf(';'));
}
}
}
//第二个请求,在这个请求里,没有设置cookie,由于跟第一个请求使用相同httpclient,所以cookie会自动放入请求头部发给服务器
string strEncodeBody = HttpUtility.UrlEncode(strBody);
HttpContent content = new StringContent(strEncodeBody);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = null;
response = client.PostAsync(strIP, content).Result;
if (response != null)
{
if (expectCode == HttpStatusCode.OK)
{
var resultValue = response.Content.ReadAsStringAsync().Result;
string strResponse = HttpUtility.UrlDecode(resultValue.ToString());
return strResponse;
}
}
- C# Httpclient编程
- c#异步编程&&HttpClient类体验
- c# 异步编程(async + await + HttpClient)
- C# Httpclient
- Android 网络编程 HttpClient
- Http编程之HttpClient
- Http编程之HttpClient
- Http编程之HttpClient
- android网络编程--HttpClient
- 网络编程之HttpClient
- HttpClient, 使用C#操作Web
- HttpClient, 使用C#操作Web
- HttpClient, 使用C#操作Web
- HttpClient, 使用C#操作Web
- HttpClient, 使用C#操作Web
- HttpClient, 使用C#操作Web
- HttpClient, 使用C#操作Web
- 阿翔编程学-HttpClient
- iOS block相关整理
- 向Qt工程中加入图片
- 1018. Public Bike Management (30)
- Django:使用filter的pk进行多值查询
- 函数最后加const
- C# Httpclient编程
- H264的RTP负载打包的数据包格式,分组,分片
- jsplumb笔记
- GCD 深入理解
- zookeeper多种方式安装
- 如何用codeblocks同时运行一个工程里的两个程序
- 引用了jquery mobile导致无法修改textarea的高度
- 淘宝网店客服回复技巧和主动营销技巧
- 《北塔教你做插件 从RibbonX开始》第一讲: Hello Ribbon