zoukankan      html  css  js  c++  java
  • HTTPclient cookie的获取与设置

     

    转载:http://www.cnblogs.com/tengpan-cn/p/4859676.html

     

    因为代码与Java用apache的HttpClient发送Post请求大部份重复,所以就不贴整段代码了,只把不同的地方贴出来。 发送Cookie就必须先得到Cookie,所以至少发送两次请求,第一次用于得到Cookie,第二次在发送请求前加上Cookie 在第一次发送Post请求前,先建立一个DefaultHttpClient对象的引用,在上文中没有建立引用,new了一个DefaultHttpClient对象后直接使用。既然要发送Cookie,必然先要得到Cookie,要得到cookie就需要DefaultHttpClient.在第一次发送请求后,就可以使用DefaultHttpClient对象的getCookieStore(),得到一个CookieStore对象,我们用到的Cookie就存在这里。还是贴一下这几句代码: 上文37行作如下修改:

    1. DefaultHttpClient httpclient=new DefaultHttpClient();
    2. HttpResponse response=httpclient.execute(httppost);
    3. CookieStore cookiestore=httpclient.getCookieStore();
    4. //得到Cookie

    第二次请求,把第一次请求的代码再复制一次。当然,变量名会重复,改一下即可。现在要在发送请求之前加上刚才得到的cookie,还是改上文的37行:

    1. DefaultHttpClient httpclient2=new DefaultHttpClient();
    2. httpclient2.setCookieStore(cookiestore);
    3. //把第一次请求的cookie加进去
    4. 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
            }
        }
    }
  • 相关阅读:
    tensorboard使用命令
    FFmpeg安装以及视频转成图片_图片转成视频_以及分辨率转换
    yolo3各部分代码详解(超详细)
    OpenCV+python 彩色图像通道拆分与组合并判断size,shape函数的用法与区别
    基于Keras 的VGG16神经网络模型的Mnist数据集识别并使用GPU加速
    以Mnist为例从头开始自己建立数据集,搭建resnet34,识别Mnist
    2017年Brats 脑肿瘤挑战赛Automatic Brain Tumor Segmentation using Cascaded Anisotropic Convolutional Neural Networks
    2018年BRATS 肿瘤分割挑战赛第三名分割方案One-pass Multi-task Networks with Cross-task Guided Attention for Brain Tumor Segmentation
    脑胶质瘤论文笔记
    .npy文件的保存与加载
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/7244502.html
Copyright © 2011-2022 走看看