zoukankan      html  css  js  c++  java
  • java 发送 http 请求

    POM 依赖

    <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>4.4.6</version>
            </dependency>

    不带参数 get 请求

    public void doGet() throws ClientProtocolException, IOException {
            // 创建一个httpclient对象
            CloseableHttpClient httpClient = HttpClients.createDefault();
            // 创建一个GET对象
            HttpGet get = new HttpGet("http://localhost:8080/test/get?param=1");
            // 设置请求头
            get.setHeader("contentType", "application/json;charset=utf-8");
            get.setHeader("Accept", "application/json;charset=utf-8");
            // 执行请求
            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();
        }    

    带参数的 GET 请求

    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();
        }

    不带参数的 POST 请求

    public void doPost() throws Exception {
    
            CloseableHttpClient httpClient = HttpClients.createDefault();
            // 创建一个post对象
            HttpPost post = new HttpPost("http://localhost:8082/httpclient/post.html");
            // 执行post请求
            CloseableHttpResponse response = httpClient.execute(post);
            String string = EntityUtils.toString(response.getEntity());
            System.out.println(string);
            response.close();
            httpClient.close();
        }

    带参数的 POST 请求

    public void doPostWithParam() throws Exception {
    // 创建一个post对象
            HttpPost post = new HttpPost("http://localhost:8080/test/post");
            // 设置请求头
            post.setHeader("contentType", "application/json;charset=utf-8");
            post.setHeader("Accept", "application/json;charset=utf-8");
            // 发送参数
            Map<String,String> map = new HashMap<String,String>();
            map.put("username","zhangsan");
            StringEntity s = new StringEntity(JSON.toJSONString(map));
            s.setContentEncoding("UTF-8");
            s.setContentType("application/json");//发送json数据需要设置contentType
            post.setEntity(s);
            // 执行post请求
            CloseableHttpResponse response = httpClient.execute(post);
            String string = EntityUtils.toString(response.getEntity());
            System.out.println(string);
            response.close();
            httpClient.close();
    }
  • 相关阅读:
    e-icon-picker 基于element-ui图标和fontawesome图标选择器组件
    js 前端将平级数据转为树形数据的方法
    发送邮件报User does not have send-as privilege for错误的解决办法
    Dynamics 365利用email实体的DeliverIncomingEmail来做抓取邮件的进一步处理
    Dynamics 365中邮件模板的使用
    导入解决方案报错:Unable to retrieve customActivityInfo using RetrieveCustomActivityInfoWithSandboxPlugin
    Dynamics 365组织服务使用Query Expression查询数据时候请谨慎使用ConditionOperator.Contains
    【代码审计】ESPCMSP8(易思企业建站管理系统)漏洞报告
    MS16-072域内中间人攻击
    域控权限提升PTH攻击
  • 原文地址:https://www.cnblogs.com/huanggy/p/9636461.html
Copyright © 2011-2022 走看看