当前位置: java基础教程 > 26-java爬虫 > 阅读正文

httpPost请求

2021.5.1.   645 次   1328字

这节介绍java爬虫的post请求, 分为带参数和不带参数

不带参数的post请求

不带参数的post请求, 和第一个案例非常相似, 关键代码如下

        //1.创建httpClient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //2.创建httpPost对象
        HttpPost httpPost = new HttpPost("https://www.52dixiaowo.com");
        try {
            //3.使用httpClient发起Post请求, 并获得响应对象
            CloseableHttpResponse response = httpClient.execute(httpPost);
            //4.判断响应对象是否为200
            if(response.getStatusLine().getStatusCode()==200){
                //5.取出响应体, 并打印
                HttpEntity entity = response.getEntity();
                String content = EntityUtils.toString(entity,"utf-8");
                System.out.println(content);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

带参数的post请求

带参数的post请求, 需要使用List封装params对象, 关键代码如下

        //1.创建HttpClient对象
        CloseableHttpClient client = HttpClients.createDefault();
        //2.创建HttpPost对象, 配置url
        HttpPost httpPost = new HttpPost("https://www.52dixiaowo.com/java/");
        //3.创建List集合, 封装参数
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("s","httpGet"));
        try {
            //4.创建表单对象, new Entity(params,"字符集");
            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params, "utf-8");
            //5.设置表单的Entity对象到Post请求中
            httpPost.setEntity(formEntity);
            //6.使用client执行post访问
            CloseableHttpResponse response = client.execute(httpPost);
            //7.判断响应码是否为200
            if(response.getStatusLine().getStatusCode()==200){
                String content = EntityUtils.toString(response.getEntity(),"utf-8");
                System.out.print(content);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

下载本节demo代码

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群