Java爬虫HTTPClient -- POST简单爬虫测试

不带参数的:

package xxx.xxx.xxx

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;


public class HttpPostTest {

    public static void main(String[] args)  {
        //1. 打开浏览器,创建HTTPClient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //2.输入网址,发起get请求创建HttpGet对象
        HttpPost httpPost = new HttpPost("http://www.itcast.cn");
        //3.按回车,发起请求,返回响应,使用HTTPClient对象发起请求
        CloseableHttpResponse response = null;
       try{
           response = httpClient.execute(httpPost);

           //4.解析响应,获取数据
           if( response.getStatusLine().getStatusCode() == 200){
               HttpEntity httpEntity = response.getEntity();
               String content = EntityUtils.toString(httpEntity, "utf8");
               System.out.println(content);
           }
       }catch(IOException e){
           e.printStackTrace();
       }finally {
           //关闭response
           try{
               response.close();
           }catch(IOException e){
               e.printStackTrace();
           }
            try{
                httpClient.close();
            }catch(IOException e){
                e.printStackTrace();
            }
       }


    }
}

带参数的写法

package xxx.xxx.xxx;


import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;


public class HttpPostParamTest {

    public static void main(String[] args) throws Exception {
        //1. 打开浏览器,创建HTTPClient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //2.输入网址,发起get请求创建HttpGet对象
        HttpPost httpPost = new HttpPost("http://yun.itheima.com/search");
        //声明List集合,封装表单中的参数
        List<NameValuePair> params  = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("keys","Java"));

        //创建表单的Entity对象.第一个参数是封装好的表单数据,第二个参数是编码
        UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params, "utf8");
        //设置表单的Entity对象到Post请求中
        httpPost.setEntity(formEntity);

        CloseableHttpResponse response = null;
       try{
           response = httpClient.execute(httpPost);

           //4.解析响应,获取数据
           if( response.getStatusLine().getStatusCode() == 200){
               HttpEntity httpEntity = response.getEntity();
               String content = EntityUtils.toString(httpEntity, "utf8");
               System.out.println(content);
           }
       }catch(IOException e){
           e.printStackTrace();
       }finally {
           //关闭response
           try{
               response.close();
           }catch(IOException e){
               e.printStackTrace();
           }
            try{
                httpClient.close();
            }catch(IOException e){
                e.printStackTrace();
            }
       }


    }
}

发布了81 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43542074/article/details/103106774