HTTPclient cookie的获取与设置
因为代码与Java用apache的HttpClient发送Post请求大部份重复,所以就不贴整段代码了,只把不同的地方贴出来。
发送Cookie就必须先得到Cookie,所以至少发送两次请求,第一次用于得到Cookie,第二次在发送请求前加上Cookie
在第一次发送Post请求前,先建立一个DefaultHttpClient对象的引用,在上文中没有建立引用,new了一个DefaultHttpClient对象后直接使用。既然要发送Cookie,必然先要得到Cookie,要得到cookie就需要DefaultHttpClient.在第一次发送请求后,就可以使用DefaultHttpClient对象的getCookieStore(),得到一个CookieStore对象,我们用到的Cookie就存在这里。还是贴一下这几句代码:
上文37行作如下修改:
- DefaultHttpClient httpclient=new DefaultHttpClient();
- HttpResponse response=httpclient.execute(httppost);
- CookieStore cookiestore=httpclient.getCookieStore();
- //得到Cookie
第二次请求,把第一次请求的代码再复制一次。当然,变量名会重复,改一下即可。现在要在发送请求之前加上刚才得到的cookie,还是改上文的37行:
- DefaultHttpClient httpclient2=new DefaultHttpClient();
- httpclient2.setCookieStore(cookiestore);
- //把第一次请求的cookie加进去
- HttpResponse response2=httpclient2.execute(httppost2);
© 2011, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记
更多HTTP client 应用参见如下连接:
http://renjie120.iteye.com/blog/1727933
package com.pocketdigi; import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List; import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
/**
*JDK默认没有org.apache.http包,需要先去http://hc.apache.org/downloads.cgi下载
*下载HttpClient,解压,在Eclipse中导入所有JAR
*/
public class Main {
/**
* @param args
* @throws UnsupportedEncodingException
* 这个例子为了简单点,没有捕捉异常,直接在程序入口加了异常抛出声明
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String url="http://localhost/newspaper/test/1.php";
//POST的URL
HttpPost httppost=new HttpPost(url);
//建立HttpPost对象
List<NameValuePair> params=new ArrayList<NameValuePair>();
//建立一个NameValuePair数组,用于存储欲传送的参数
params.add(new BasicNameValuePair("pwd","2544"));
//添加参数
httppost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
//设置编码
HttpResponse response=new DefaultHttpClient().execute(httppost);
//发送Post,并返回一个HttpResponse对象
//Header header = response.getFirstHeader("Content-Length");
//String Length=header.getValue();
// 上面两行可以得到指定的Header
if(response.getStatusLine().getStatusCode()==200){//如果状态码为200,就是正常返回
String result=EntityUtils.toString(response.getEntity());
//得到返回的字符串
System.out.println(result);
//打印输出
//如果是下载文件,可以用response.getEntity().getContent()返回InputStream
}
}
}
Java用apache的HttpClient
HTTPclient cookie的获取与设置的更多相关文章
- 记一次HTTPClient模拟登录获取Cookie的开发历程
记一次HTTPClient模拟登录获取Cookie的开发历程 环境: springboot : 2.7 jdk: 1.8 httpClient : 4.5.13 设计方案 通过新建一个 ...
- android webview里获取和设置cookie
private class MyWebViewClient extends WebViewClient { public boolean shouldOverrideUrlLoading(WebVie ...
- 跨域请求cookie获取与设置问题
描述:最近做项目遇到了cookie的问题,项目为前后端分离项目,前台有分外网IP(A外)和内网IP(A内),后台服务只有一个内网IP(B内). 现象:当我前台异步请求发送给后台的时候,后台并不能获取到 ...
- js无法获取.net设置的cookie
使用CookieHelper帮助类: public class CookieHelper { #region 获取Cookie /// <summary> /// 获得Cookie的值 / ...
- jquery 设置cookie、删除cookie、获取cookie
1.引入jquery.js <script src="//cdn.bootcss.com/jquery/1.12.4/jquery.js"></script> ...
- 设置cookie,获取cookie,删除cookie,修改cookie
怎么设置cookie,怎么设置cookie以及删除cookie和cookie详解 在操作cookie之前,先来看一下cookie长什么样. 可以看到,cookie是一个个键值对(“键=值”的形式)加上 ...
- Cookie的作用范围、设置、创建、获取的方法
cookie的作用范围 同一浏览器,同一路径 默认情况下, 上级目录设置的cookie,下级目录可以获取到, 而下级目录设置的cookie,上级目录不能获取. 即:在一个页面设置cookie,那么这个 ...
- 【JavaScript代码实现四】获取和设置 cookie
// 创建cookie function setCookie(name, value, expires, path, domain, secure) { var cookieText = encode ...
- js操作获取和设置cookie
//创建cookie function setCookie(name, value, expires, path, domain, secure) { var cookieText = encodeU ...
随机推荐
- 《JS权威指南学习总结》
JS权威指南学习总结:http://www.cnblogs.com/ahthw/category/652668.html
- POJ 3122 & 3258 & 3273 #二分
以下三道都是经典二分,道理都差不多,代码就贴在一起了. POJ 3122 POJ 3258 POJ 3273 POJ 3122: #include<iostream> #inc ...
- Django的使用
Django使用介绍 1.MTV Django中的MTV分别表示models.templates和views. models文件主要定义数据库的连接. templates文件可以放一些html的模版. ...
- poj 2299 Ultra-QuickSort 逆序对模版题
用树状数组求逆序数 唯一的坑点就是sum要用long long存 直接贴代码了 以后忘了还能直接看 2333…… PS:和hdu3743代码是一样的,因为两个都是逆序对模版题…… #include&l ...
- amazeui tab 监听当前选项
$('#contenttab').find('a').on('opened.tabs.amui', function(e) { if(e.target.pathname.indexOf("[ ...
- php 备份数据库
<?php header("Content-type:text/html;charset=utf-8"); //配置信息 $cfg_dbhost = 'loca ...
- stl 生产全排列 next_permutation
#include<stdio.h>#include<algorithm>using namespace std;int main(){ int n,p[10]; scanf(& ...
- css sprite的使用心得
提高网页显示速度最有效的一个方法是减少页面的HTTP请求次数,为了减少HTTP请求次数,最直接有效的方法是使用精灵图片(CSS sprites),精灵图片是把许多图片放到一张大图片里面,通过CSS来显 ...
- Learning BSD.sys/queue.h
This file includes 4 data-structures.. Insteresting because they are written in 1994.. to make it ea ...
- freemarker遍历list中的map
前台: <select id="jq" name="jq" class="tsui" data-required="true ...