zoukankan      html  css  js  c++  java
  • 请求的个性化配置

    1. 请求头设置

    //创建 请求
    RequestBuilder requestBuilder = RequestBuilder.get().setUri("https://www.baidu.com/");
    HttpUriRequest httpGet = requestBuilder.build();
    /**
     * 设置请求头, eg: Accept: text/plain
     */
    //单个设置
    httpGet.setHeader(HttpHeaders.ACCEPT, ContentType.TEXT_PLAIN.getMimeType());
    //多个设置
    Header acceptHeader = new BasicHeader(HttpHeaders.ACCEPT, ContentType.TEXT_PLAIN.getMimeType());
    Header contentTypeHeader = new BasicHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.getMimeType());
    httpGet.setHeaders(new Header[]{acceptHeader, contentTypeHeader});

    2. HttpGet设置请求参数

    //创建 请求
    RequestBuilder requestBuilder = RequestBuilder.get().setUri("https://www.baidu.com/");
    /**
     * GET请求的参数都是拼装在URL地址后方
     *      addParameter()
     *      addParameters() ---  List<NameValuePair> --- BasicNameValuePair
     */
    //单个单个添加
    requestBuilder.addParameter("username", "JiMu");
    requestBuilder.addParameter("password", "123456");
    
    //设置参数数组
    List<NameValuePair> paramList = new ArrayList<NameValuePair>();
    BasicNameValuePair para1 = new BasicNameValuePair("username", "JiMu");
    paramList.add(para1);
    BasicNameValuePair para2 = new BasicNameValuePair("password", "123456");
    paramList.add(para2);
    requestBuilder.addParameters(paramList.toArray(new NameValuePair[paramList.size()]));
    
    HttpUriRequest httpGet = requestBuilder.build();
    //输出请求行:https://www.baidu.com/?username=JiMu&password=123456&username=JiMu&password=123456
    System.out.println(httpGet.getRequestLine().getUri());

    3. HttpPost设置请求参数

    //创建 请求
    HttpPost httpPost = new HttpPost("https://www.baidu.com/");
    /**
     * post请求的参数是放在请求体里面的,依靠 HttpPost 实例自身的setEntity()方法来设置
     * 使用StringEntity设置 --- 可灵活设定参数格式
     */
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("username", "JIMu");
    jsonObject.put("password", "123456");
    StringEntity entityParam = new StringEntity(jsonObject.toString());
    //不设置时,默认是text/plain
    entityParam.setContentType(ContentType.APPLICATION_JSON.toString());
    httpPost.setEntity(entityParam);
    //创建 请求
    HttpPost httpPost = new HttpPost("https://www.baidu.com/");
    /**
     * 使用UrlEncodedFormEntity来构建 --- 适用于传统表单格式的参数形式
     *      UrlEncodedFormEntity entityParam  = new UrlEncodedFormEntity(List<NameValuePair>, "UTF-8");
     *      httpPost.setEntity(entityParam);
     */
    NameValuePair para1 = new BasicNameValuePair("username", "名字");
    NameValuePair para2 = new BasicNameValuePair("password", "123456");
    List<NameValuePair> paramList = new ArrayList<NameValuePair>();
    paramList.add(para1);
    paramList.add(para2);
    UrlEncodedFormEntity entityParam = new UrlEncodedFormEntity(paramList, Consts.UTF_8);
    httpPost.setEntity(entityParam);
    System.out.println("获取请求信息:" + EntityUtils.toString(httpPost.getEntity()));
  • 相关阅读:
    在 idea 下搭建的第一个MyBatis项目及增删改查用法
    解决idea中Tomcat服务器日志乱码及控制台输出乱码
    idea 设置自动生成方法的快捷键 类似于main() 方法
    windows下Tomcat根据日期生成日志catalina.out
    springmvc <from:from>标签的使用
    Spring+Quartz集群环境搭建
    Quartz整合Spring
    Quartz 基本编码
    java中 线程池和 callable 创建线程的使用
    SpringSecurity权限管理框架--基于springBoot实现授权功能
  • 原文地址:https://www.cnblogs.com/myitnews/p/12197193.html
Copyright © 2011-2022 走看看