zoukankan      html  css  js  c++  java
  • httpclient个人理解

    httpclient:模拟浏览器发送请求,服务器会响应数据,用心区域网内 不同系统间的请求调用

    依赖  httpclient.jar和httpcore.jar需要同时纯在

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
    </dependency>

    package com.taotao.httpclient;
    
    import java.util.ArrayList;
    import java.util.List;
    
    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.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.client.utils.URIBuilder;
    import org.apache.http.entity.StringEntity;
    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 org.junit.Test;
    
    public class HttpClientTest {
    
        @Test
        public void doGet() throws Exception {
            //创建一个httpclient对象
            CloseableHttpClient httpClient = HttpClients.createDefault();
            //创建一个GET对象
            HttpGet get = new HttpGet("http://www.sogou.com");
            //执行请求
            CloseableHttpResponse response = httpClient.execute(get);
            //取响应的结果
            int statusCode = response.getStatusLine().getStatusCode();
            System.out.println(statusCode);
            HttpEntity entity = response.getEntity();
            String string = EntityUtils.toString(entity, "utf-8");
            System.out.println(string);
            //关闭httpclient
            response.close();
            httpClient.close();
        }
        
        @Test
        public void doGetWithParam() throws Exception{
            //创建一个httpclient对象
            CloseableHttpClient httpClient = HttpClients.createDefault();
            //创建一个uri对象
            URIBuilder uriBuilder = new URIBuilder("http://www.sogou.com/web");
            uriBuilder.addParameter("query", "花千骨");
            HttpGet get = new HttpGet(uriBuilder.build());
            //执行请求
            CloseableHttpResponse response = httpClient.execute(get);
            //取响应的结果
            int statusCode = response.getStatusLine().getStatusCode();
            System.out.println(statusCode);
            HttpEntity entity = response.getEntity();
            String string = EntityUtils.toString(entity, "utf-8");
            System.out.println(string);
            //关闭httpclient
            response.close();
            httpClient.close();
        }
        
        @Test
        public void doPost() throws Exception {
            CloseableHttpClient httpClient = HttpClients.createDefault();
    
            //创建一个post对象
            HttpPost post = new HttpPost("http://localhost:8082/httpclient/post.action");
            //执行post请求
            CloseableHttpResponse response = httpClient.execute(post);
            String string = EntityUtils.toString(response.getEntity());
            System.out.println(string);
            response.close();
            httpClient.close();
            
        }
        
        @Test
        public void doPostWithParam() throws Exception{
            CloseableHttpClient httpClient = HttpClients.createDefault();
         
            //创建一个post对象  
            HttpPost post = new HttpPost("http://localhost:8082/httpclient/post.action");
            //创建一个Entity。模拟一个表单
            List<NameValuePair> kvList = new ArrayList<>();
            kvList.add(new BasicNameValuePair("username", "张三"));
            kvList.add(new BasicNameValuePair("password", "123"));
            
            //包装成一个Entity对象 
            StringEntity entity = new UrlEncodedFormEntity(kvList, "utf-8");
            //设置请求的内容 
            post.setEntity(entity);
            
            //执行post请求
            CloseableHttpResponse response = httpClient.execute(post);
            String string = EntityUtils.toString(response.getEntity());
            System.out.println(string);
            response.close();
            httpClient.close();
        }
    }
  • 相关阅读:
    Linux内核中常用的数据结构和算法(转)
    漫画|Linux 并发、竞态、互斥锁、自旋锁、信号量都是什么鬼?(转)
    2--STM32+USB移植+HID 与AUDIO类MIDI设备组成的复合设备(原创)
    1--STM32 ADC1与ADC2 16通道DMA采集笔记(原创)
    记不住 Linux 命令?这三个工具可以帮你(转)
    专访笨叔叔:2019年可能是Linux年?(转)
    C语言冒泡排序_4
    USB HID设备报告描述符详解(转)
    C语言数组指针_3
    C语言编程知识点_1
  • 原文地址:https://www.cnblogs.com/dianzan/p/11145188.html
Copyright © 2011-2022 走看看