zoukankan      html  css  js  c++  java
  • Spring的RestTemplate实现restful接口的调用

    1.设置请求头

    // 请求头headers设置为json
    // {Content-Type=[application/json;charset=UTF-8], Accept=[application/json;charset=UTF-8],X-Access-Token=[eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MTA5NjAzMjQsInVzZXJuYW1lIjoiMzMwMDAwIn0.CeYu-nD5HkKqacNsgcJgkwb0ZfRB9GbGpx5KDIbHUlE]}
    public static HttpHeaders getHeaders(String token) {
    HttpHeaders headers = new HttpHeaders();
    String mediaType = MediaType.APPLICATION_JSON_UTF8_VALUE;//application/json;charset=UTF-8
    headers.setContentType(MediaType.parseMediaType(mediaType));
    headers.set("Accept", mediaType);
    headers.set("X-Access-Token", token);
    return headers;
    }

    //上传文件请求类型要设置成文件类型
    ////{Content-Type=[multipart/form-data], Accept=[application/json;charset=UTF-8], X-Access-Token=[eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MTA5NjEwMzIsInVzZXJuYW1lIjoiMzMwMDAwIn0.IpUl2VncZD1lshEjK5IlEYFFNJuXzmZIcXeyZPk2WXc]}
    public static HttpHeaders getHeadersFormData(String token) {
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.MULTIPART_FORM_DATA);//multipart/form-data
    headers.set("Accept", MediaType.APPLICATION_JSON_UTF8_VALUE);
    headers.set("X-Access-Token", token);
    return headers;
    }

    2.接口调用

    2.1入参为普通json数据,适合post、put请求

    JSONObject jtcyxxAddJson = new JSONObject();
    jtcyxxAddJson.put("batchno", batchno);
    jtcyxxAddJson.put("exDataRequestBatchnoList", arrayList);
    log.info("jtcyxx_json========="+jtcyxxAddJson);
    String jtcyxxAddJson_To_Str = jtcyxxAddJson.toString();//将json转为String字符串
    RestTemplate restTemplate = new RestTemplate();
    HttpEntity<String> request = new HttpEntity<>(jtcyxxAddJson_To_Str, headers);
    ResponseEntity<JSONObject> responseEntity = restTemplate.exchange(PersonAddUrl, HttpMethod.POST, request, JSONObject.class);
    log.info("人员信息添加返回信息======="+responseEntity);

    2.2入参为附件

    String filePath = CxhCreateUtils.returnCxhUrl(batchno, xzqhms, jzlxmc, firstname, rs);
    // 封装请求参数
    FileSystemResource resource = new FileSystemResource(new File(filePath));
    System.out.println("resource========="+resource);
    MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
    params.add("file", resource); //服务端MultipartFile uploadFile
    System.out.println("params========="+params);
    //param.add("param1", "test"); //服务端如果接受额外参数,可以传递
    System.out.println("--- 开始上传文件 ---");
    HttpEntity<MultiValueMap<String, Object>> request = new HttpEntity<>(params, headers);
    System.out.println("request======"+request);
    RestTemplate restTemplate = new RestTemplate();
    ResponseEntity<JSONObject> upload = restTemplate.exchange(FileAddUploadUrl, HttpMethod.POST, request, JSONObject.class);
    System.out.println("--- 上传文件结束 ---" + upload);
    //<200 OK,{"result":"group1/M00/00/01/oYYBAGAGhL6AZVaXAAEqfBs6kio893.pdf","code":0,"success":true,"message":"group1/M00/00/01/oYYBAGAGhL6AZVaXAAEqfBs6kio893.pdf","timestamp":1611039934598},{Access-Control-Allow-Methods=[GET,POST,OPTIONS,PUT,DELETE], Access-Control-Allow-Credentials=[true], Set-Cookie=[rememberMe=deleteMe; Path=/exchange-boot; Max-Age=0; Expires=Mon, 18-Jan-2021 07:05:34 GMT], vary=[accept-encoding], Content-Type=[application/json;charset=UTF-8], Transfer-Encoding=[chunked], Date=[Tue, 19 Jan 2021 07:05:34 GMT]}>
    JSONObject uploadJson = upload.getBody();
    filePath_result = uploadJson.getString("result");

  • 相关阅读:
    【java开发需要的环境资源以及开发工具】慢慢更新
    【如何编写有质量代码】【转】
    base——JavaSE&&JavaEE&&JavaME的区别【Java中常用的包结构】
    Mysqlsql——And【sql语句之为何用and一个字段两个值得不到表中的数据】
    Struts2——执行流程
    base——本地资源路径&&网络资源路径&&正反斜杠在Java中的用法
    base——new File(String Path)加载资源问题
    2019-06-11_Python中文编码
    2019-06-11-Python简介
    2019-06-05 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.taotao.search.mapper.SearchItemMapper.getItemList
  • 原文地址:https://www.cnblogs.com/tongcc/p/14299788.html
Copyright © 2011-2022 走看看