用httpclient获取到的cookie不完整是怎么回事

作者&投稿:吁钢 (若有异议请与网页底部的电邮联系)
用httpclient获取到的cookie不完整是怎么回事~

用httpclient获取到的cookie不完整是怎么回事
通过登录时取出header中的cookie,组合起来给下一次POST时在header中送回去。注意:是在header中的。

protected void readCookies(HttpURLConnection url_con){
List cookieList = url_con.getHeaderFields().get("Set-Cookie");
if(cookieList != null){
for(String cookie : cookieList){
int p = cookie.indexOf("=");
String key = cookie.substring(0, p);
String value = cookie.substring(p+1, cookie.indexOf(";"));
cookies.put(key, value);
}
}
}

HttpWebResponse 的 Cookies 属性所填充的 Cookie 和 HttpWebResponse 的 Headers 中填充的 Cookie 是从原始的响应中直接解析出来的,也就是相应里有啥,这里就有啥,所以是 3;而 HttpWebRequest 的 CookieContainer 中的 Cookie 是对前面的 Cookies 中的 Cookie 经过一些分类(比如域名分类)和判断(比如是否过期)后才填充的,所以它的数量不一定同原始的 Cookie 数量相同。

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.baidu.com");
request.CookieContainer = new CookieContainer();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

// response.Cookies.Count 这个是 3
// request.CookieContainer.Count 这个是 2

如果用 HttpClient 的话,HttpClientHandler 的 CookieContainer.Count 应该也是 2,如果要获取所有 3 个 Cookie 的话,使用 Task<HttpResponseMessage> GetAsync(Uri requestUri),然后从 HttpResponseMessage 的 Headers.GetValues("Set-Cookie") 可以取到所有 3 个。


HttpClient 为什么每次返回一个不同的JsessionId
1.服务器认证(Server Authentication)HttpClient处理服务器认证几乎是透明的,仅需要开发人员提供登录信息(login credentials)。登录信息保存在HttpState类的实例中,可以通过 setCredentials(String realm, Credentials cred)和getCredentials(String realm)来获取或设置。HttpClient内建的自动认证,可以通过HttpMethod...

httpclient请求和响应不对应
题主是否想问“httpclient请求和响应不对应的原因”,原因是请求和响应的URL不匹配、请求和响应的Headers不匹配、请求和响应的方法不匹配。1、请求和响应的URL不匹配:可能是由于请求和响应的URL不匹配,导致请求和响应不对应。可以检查请求和响应的URL是否正确。2、请求和响应的Headers不匹配:可能是由于请...

httpclient中httproute表示什么
表示一个完整的连接路由。在HttpClient中,HttpRoute包含了与目标服务器的连接信息,还包括代理服务器的信息,表示一个完整的连接路由,用来指示HttpClient如何连接到目标服务器的,包括是否需要通过代理服务器进行连接等。

HttpClient和HttpURLConnection的区别
简单来说,HttpClient就是一个增强版的HttpURLConnection,HttpURLConnection可以做的事情HttpClient全部可以做;HttpURLConnection没有提供的有些功能,HttpClient也提供了,但它只是关注于如何发送请求、接收响应,以及管理HTTP连接。

httpclient.begin(url)报错
题主是否想询问“httpclient.begin(url)报错的原因”由网络连接问题和HttpClient版本问题造成的。1、网络连接问题:请检查网络连接是否正常,并且防火墙是否阻止了HTTP\/HTTPS流量。2、HttpClient版本问题:HttpClient在不同版本中可能存在不同的使用方式和限制,请检查你使用的HttpClient版本是否与你的代码兼容。

如何使用HttpClient
使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。1. 创建HttpClient对象。2. 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。3. 如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来...

Flutter io 网络请求中HttpClient().close()有什么意义? 关闭网络请求...
在Flutter中,使用HttpClient进行网络请求时,通常使用'HttpClientHttpClient的'关闭close方法来释放资源并关闭连接。这个方法的主要目的是防止网络资源被浪费,从而提高网络请求的效率。具体来说,网络请求需要占用一定的资源,如网络带宽、内存等,如果不及时关闭网络连接,可能会导致资源浪费和程序的性能下降。此外...

HttpClient和HttpURLConnection的区别
HttpClient: DefaultHttpClient和它的兄弟AndroidHttpClient都是HttpClient具体的实现类,它们都拥有众多的API,而且实现比较稳定,bug数量也很少。但同时也由于HttpClient的API数量过多,使得我们很难在不破坏兼容性的情况下对它进行升级和扩展,所以目前Android团队在提升和优化HttpClient方面的工作态度并不积极。HttpURLConnection:...

HttpClient和WebService的区别和介绍
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准...

如何使用HttpClient
使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。1. 创建HttpClient对象。2. 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。3. 如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来添加请求参数;对于...

民乐县18577797417: 用httpclient获取到的cookie不完整是怎么回事 -
泰重诺辰: 用httpclient获取到的cookie不完整是怎么回事 通过登录时取出header中的cookie,组合起来给下一次POST时在header中送回去.注意:是在header中的.

民乐县18577797417: httpclient怎样获取浏览器中某个网站的所有cookie -
泰重诺辰: 你好,httpclient保存在模拟对象中,httpclient和IE是两个世界,如果你想获取这个网站的cookie你可以使用QQ浏览器. QQ浏览器作为现在市面上为数不多的使用自己开发内核的浏览器,它比较支持用户自己使用这种代码或者插件来实现用户的目的,可以说的上是人性化十足,而且QQ浏览器也比较稳定,不会出现一些错误之类的情况,你放心可以测试代码.

民乐县18577797417: .NET4.5 HttpClient 如何设置请求的 Cookie 和 获取返回的Cookie? -
泰重诺辰: request.getCookie("key",value) request.setCookie("key",var)

民乐县18577797417: java如何利用httpclient 抓取登陆后的页面 -
泰重诺辰: 1. 创建一个全局的httpclient对象2. 发送登录请求3. 如果登录成功请求指定的页面4. 保存请求结果 上面这些步骤要使用同一个httpclient对象,因为httpclient会保存cookie会话,如果不用同一个httpclient对象服务端是不会识别出已登录的用户信息的.

民乐县18577797417: java如何用httpclient从webservice获取数据 -
泰重诺辰: 下面是一个获取天气的例子:import java.io.*; import java.net.*; public class test{ public static void main(String[] args) throws Exception { URL url = new URL("http://www.webservicex.net/globalweather.asmx/GetWeather?CityName=guangzhou&...

民乐县18577797417: httpclient怎么处理返回数据,取到值 -
泰重诺辰: ASP段还是照常,用request.form("xx")的方式接收,关键是用Ajax方式提交数据的时候,对传递的值进行编码,和设置文件头,下面是一个ajax用Post方式提交数据的函数

民乐县18577797417: java spring mvc通过httpclient调用别人的接口服务 -
泰重诺辰: 主要有以下几点原因:1、网络不通,在调用的机器上评一下对方服务器ip或域名;2、如果接口url用的域名,排查是不是DNS问题,这种问题使用方法1时ping域名应该是不通的,直接ping ip可以通;3、请求接口时设置的超时时间太短,...

民乐县18577797417: httpclient怎么取cookie -
泰重诺辰: 展开1全部 下面是一个例子: BasicCookieStore cookieStore = new BasicCookieStore(); CloseableHttpClient httpclient = HttpClients.custom() .setDefaultCookieStore(cookieStore) .build(); try { //HttpGet httpget = new HttpGet("https://someportal/...

民乐县18577797417: 如何通过HttpClient获取响应内容字符集 -
泰重诺辰: *获取Response内容字符集* @param response* @return public String getContentCharset(HttpResponse response) { String charset = "ISO_8859-1";

民乐县18577797417: 新人求助 C#httpclient的使用方法 -
泰重诺辰: 在.Net 4.5中增加了一个新的System.Net.Http.HttpClient名字空间(在 System.Net.Http.dll 中).其中 提供了用于发送 HTTP 请求和接收 HTTP 响应的API.基本操作 和以前的HttpWebRequest相比,HttpClient更加简洁,下面就是一个下载www....

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网