美文网首页
2019-08-08 java调用http请求添加参数

2019-08-08 java调用http请求添加参数

作者: 小苏c | 来源:发表于2019-08-08 16:56 被阅读0次

    springBoot中添加:

    <dependency>

    <groupId>com.amazonaws</groupId>

    <artifactId>aws-java-sdk-core</artifactId>

    <version>1.10.30</version>

    <scope>test</scope>

    </dependency>

    依赖,测试类中吧下面代码考进来,执行即可。

    package com.suyl.designpattern;

    import org.apache.http.HttpEntity;

    import org.apache.http.NameValuePair;

    import org.apache.http.ParseException;

    import org.apache.http.client.ClientProtocolException;

    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.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;

    import org.junit.runner.RunWith;

    import org.springframework.boot.test.context.SpringBootTest;

    import org.springframework.test.context.junit4.SpringRunner;

    import java.io.IOException;

    import java.net.URISyntaxException;

    import java.util.LinkedList;

    import java.util.List;

    @RunWith(SpringRunner.class)

    @SpringBootTest

    public class DesignpatternApplicationTests {

    @Test

        public void getParams() {

    // 获取连接客户端工具

            CloseableHttpClient httpClient = HttpClients.createDefault();

    String entityStr =null;

    CloseableHttpResponse response =null;

    try {

    /*

                * 由于GET请求的参数都是拼装在URL地址后方,所以我们要构建一个URL,带参数*/

                URIBuilder uriBuilder =new URIBuilder("http://localhost:8888/admin/login?logout=1");

    /** 第一种添加参数的形式 */

    /*uriBuilder.addParameter("name", "root");

    uriBuilder.addParameter("password", "123456");*/

                /** 第二种添加参数的形式 */

                List list =new LinkedList<>();

    BasicNameValuePair param1 =new BasicNameValuePair("name","suyl");

    BasicNameValuePair param2 =new BasicNameValuePair("password","123456");

    list.add(param1);

    list.add(param2);

    uriBuilder.setParameters(list);

    // 根据带参数的URI对象构建GET请求对象

                HttpGet httpGet =new HttpGet(uriBuilder.build());

    /*

                * 添加请求头信息*/

                // 浏览器表示

                httpGet.addHeader("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)");

    // 传输的类型

                httpGet.addHeader("Content-Type","application/x-www-form-urlencoded");

    // 执行请求

                response = httpClient.execute(httpGet);

    response.getEntity();

    // 获得响应的实体对象

                HttpEntity entity = response.getEntity();

    // 使用Apache提供的工具类进行转换成字符串

                entityStr = EntityUtils.toString(entity,"UTF-8");

    }catch (ClientProtocolException e) {

    System.err.println("Http协议出现问题");

    e.printStackTrace();

    }catch (ParseException e) {

    System.err.println("解析错误");

    e.printStackTrace();

    }catch (URISyntaxException e) {

    System.err.println("URI解析异常");

    e.printStackTrace();

    }catch (IOException e) {

    System.err.println("IO异常");

    e.printStackTrace();

    }finally {

    // 释放连接

                if (null != response) {

    try {

    response.close();

    httpClient.close();

    }catch (IOException e) {

    System.err.println("释放连接出错");

    e.printStackTrace();

    }

    }

    }

    // 打印响应内容

            System.out.println(entityStr);

    }

    @Test

        public void postParams() {

    // 获取连接客户端工具

            CloseableHttpClient httpClient = HttpClients.createDefault();

    String entityStr =null;

    CloseableHttpResponse response =null;

    try {

    // 创建POST请求对象

                HttpPost httpPost =new HttpPost("http://localhost:8888/admin/login?logout=1");

    /*

                * 添加请求参数*/

                // 创建请求参数

                List list =new LinkedList<>();

    BasicNameValuePair param1 =new BasicNameValuePair("username","yilian");

    BasicNameValuePair param2 =new BasicNameValuePair("password","1234560");

    list.add(param1);

    list.add(param2);

    // 使用URL实体转换工具

                UrlEncodedFormEntity entityParam =new UrlEncodedFormEntity(list,"UTF-8");

    httpPost.setEntity(entityParam);

    /*

                * 添加请求头信息*/

                // 浏览器表示

                httpPost.addHeader("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)");

    // 传输的类型

                httpPost.addHeader("Content-Type","application/x-www-form-urlencoded");

    // 执行请求

                response = httpClient.execute(httpPost);

    // 获得响应的实体对象

                HttpEntity entity = response.getEntity();

    // 使用Apache提供的工具类进行转换成字符串

                entityStr = EntityUtils.toString(entity,"UTF-8");

    // System.out.println(Arrays.toString(response.getAllHeaders()));

            }catch (ClientProtocolException e) {

    System.err.println("Http协议出现问题");

    e.printStackTrace();

    }catch (ParseException e) {

    System.err.println("解析错误");

    e.printStackTrace();

    }catch (IOException e) {

    System.err.println("IO异常");

    e.printStackTrace();

    }finally {

    // 释放连接

                if (null != response) {

    try {

    response.close();

    httpClient.close();

    }catch (IOException e) {

    System.err.println("释放连接出错");

    e.printStackTrace();

    }

    }

    }

    // 打印响应内容

            System.out.println(entityStr);

    }

    }

    相关文章

      网友评论

          本文标题:2019-08-08 java调用http请求添加参数

          本文链接:https://www.haomeiwen.com/subject/dttfjctx.html