本人微信 zf363133213 欢迎各位添加好友,共同探讨问题

第一种方法:

public Object test(){

HttpHeaders headers = new HttpHeaders();//http请求头

RestTemplate restTemplate = new RestTemplate();

headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));

headers.add("versionNo","123");

Mapbody = new HashMap<>();//请求body

body.put("carNo","123");

HttpEntity> requestEntity=new HttpEntity>(body,headers);

Mapmap = restTemplate.postForObject("http://test/get",requestEntity,Map.class);

//String jsonStr =restTemplate.postForObject("http://test/get",requestEntity,String.class);

retrurn map;

}

第二种方法:

public Object test(){

Mapcontent =new HashMap();

content.put("carNo","123");//请求参数

HttpClient httpClient = new HttpClient();

PostMethod post = new PostMethod("http://test/get");

post.addRequestHeader("appId","123");

post.addRequestHeader("content-type","application/json;charset=utf-8");

RequestEntity entity =new StringRequestEntity(JSONObject.toJSONString(content),"application/json;charset=utf-8","utf-8");

post.setRequestEntity(entity);

httpclient.executeMethod(post);

String info=new String(post.getResponseBody(),"utf-8");

return info;

}

第三种带token的

@Autowired

private RestTemplate restTemplate;

@Value("${monthRouteUrl}")//在配置文件中配置url

private String url;

定义header方法:

private HttpHeaders createHttpHeaders(String token){

HttpHeaders headers = new HttpHeaders();

//自定义表头

headers.setContentType(new MediaType("application","json",Charset.forName("UTF-8")));

//设置接收

headers.setAccept(Lists.newArrayList(MediaType.APPLICATION_JSON));

headers.setAcceptCharset(Lists.newArrayList(Charset.forName("UTF-8")));

//把token加入header中

headers.add("token",token);

return headers;

}

private Map> getEachDimension( EarlywarningOverviewDTO earlywarning){

//head 调上面方法

HttpHeaders headers = createHttpHeaders(earlywarning.getToken());

restTemplate.getMessageConverters().add(new StringHttpMessageConverter(Charset.forName("UTF-8")));

//封装参数对象和请求头

HttpEntityrequest = new HttpEntity(earlywarning,hearers);

//调用

ResponseEntityexchange = restTemplate.exchange(url,HttpMethod.POST,requestEntity,String.class);

//得到返回状态

String status = exhange.getStatusCode().toString();

//最终我们想转成的对象集合,具体属性要和写这个接口的人返回的属性一样

Listdimensions = Lists.newArrayList();

if("200".contains(status)){

Map map = JSON.parseObject(exchange.getBody(),Map.class);

if(null != map.get("data")){

String data = map.get("data").toString();

//data就是返回的,把他转换为我们需要的对象

dimensions = JSON.parseArray(data,SelectDimensionDTO.class);

}

dimensions  就可以用了

}

}

第四种 如果不通过他的权限过滤,不要token

则如下:

private MonthlyRouteDTO getMonthRoute(DetailPageDimensionDTO detailPageDimensionDTO ){

//我们想要最终转换的对象,属性要跟这个接口的属性一致

MonthRoutDTO  monthRoutDTO = null;

//直接调工具类方法,参数是url和detailPageDimensionDTO

String result = HttpUtil.requestPost(url,detailPageDimensionDTO );

log.info("-----远程调用:{}----",null== result?null:JSONObject.toJSONString(result));

if(!StringUtils.isEmpty(result)){

Map map = JSON.parseObject(result,Map.class);

String status = (String)map.get("code")

if("1000".equals(status)){

String data = map.get("data").toString();

monthlyRouteDTO = JSON.parseObject(data,MonthlyRouteDTO.class);

}

}

}

//工具类

@Slf4j

public class HttpUtil{

public static String requestPost(String strUrl ,Object content){

String info = null;

try{

HttpClient httpclient = new HttpClient();

PostMethod post  = new PostMethod(strUrl);

post.addRequestHeader("Content-Type","application/json;charset=utf-8");

RequestEntity entity = new StringRequestEntity(JSONObject.toJSONString(content),"application/json;charset=utf-8","utf-8");

post.setRequestEntity(entity);

httpclient.executeMethod(post);

info = new String(post.getResponseBody(),"utf-8");

return info;

} catch(Exception e){

log.info("-------requestPost异常:{}",e)

}

return "";

}

java调用一个外部url_java 从程序内部调用外部url/接口相关推荐

  1. 解决python调用 ffmpeg时 ‘ffmpeg‘ 不是内部或外部命令,也不是可运行的程序

    解决 python 调用 ffmpeg时 'ffmpeg' 不是内部或外部命令,也不是可运行的程序 在windows系统下, 我们使用windows下,使用ffmpeg库调用FFmpeg工具来提取视频 ...

  2. java递归怎么写_什么是递归?用Java写一个简单的递归程序

    什么是递归?用Java写一个简单的递归程序 递归的定义 递归(recursion):以此类推是递归的基本思想,将规模大的问题转化为规模小的问题来解决. 递归的要素 自定义递归函数,并确定函数的基本功能 ...

  3. 用java开发一个简单的安卓程序,Android NDK开发简单程序分享(Hello Word!)

    在之前的博客中已经为大家介绍了,如何在win环境下配置DNK程序,本篇我将带大家实现一个简单的Hello jni程序,让大家真正感受一下NDK开发的魅力.这里我们选择使用C+JAVA开发Android ...

  4. java完成一个学生信息调查程序_利用Java设计一个简单的学生信息管理程序

    利用Java设计一个简单的控制台学生信息管理程序 此程序可作为课设的参考,其中信息存储于文件中. 创建了学生类Student,用于存储学号等的信息.创建StudentFunction类,用于实现诸如学 ...

  5. java中一个简单的涂鸦程序

    涂鸦是一个在网络聊天中经常会用到的工具,由于笔者水平有限,只能说下一个简单的涂鸦,就是在面板中可以用画笔自己花一些东西.我使用的是画实心矩形(或者圆形)来达到目的,通过监听鼠标事件来获得鼠标点击的坐标 ...

  6. 用java设计一个文件查重程序,输入两个文本文件,输出两个文本文件的重复率(最长公共子序列的应用)...

    你可以使用java代码来设计一个文件查重程序.首先,你需要读取两个文本文件的内容,将它们存储在字符串变量中.然后,你可以使用最长公共子序列(LCS)算法来计算两个字符串的重复率. LCS算法的实现方法 ...

  7. java实现一个跳转结构程序,Java程序设计基础(第6版)最新章节_鲜征征著_得间小说...

    4.3 分支结构 分支结构又称为选择结构,是一种在两种以上的多条执行路径中选择一条执行的控制结构,这里所说的执行路径是指一组语句.通常分支结构要先做一个判断,然后根据判断的结果来决定选择哪一条执行路径 ...

  8. java体重指数计算器程序_用Java编写一个简单的计算器程序

    展开全部 import java.awt.*; import java.awt.event.*; public class CalcAppDemo extends Frame{ private Tex ...

  9. java编写一个ATM取款机小程序

    此程序效果图如下: 一下为源代码: package step4; import java.util.Scanner; public class ForPractice4 { public static ...

  10. 用java开发一个人脸识别小程序demo

    转载自: https://shimo.im/docs/qDyGddWVhRXVpv8r/read https://shimo.im/docs/GHcvW3WyVQRXckdG/read https:/ ...

最新文章

  1. SDN/NFV步入规模部署期 运营商拓智能化成大势所趋
  2. 数据倾斜的原因和解决方案
  3. 用python+flask自己制作api(教程附源码)
  4. 广州站 | 云原生 Serverless 技术实践营精彩回顾
  5. Objc基础学习记录5
  6. 基于Java+SpringBoot+vue+element等动物救助平台设计和实现
  7. 信息学奥赛一本通(1157:哥德巴赫猜想)
  8. ROUTE ADD 命令详解
  9. 互联网架构师祝大家中秋节快乐!快领红包了!
  10. 【BZOJ 1491】 [NOI2007]社交网络
  11. 【转载】高斯滤波器详解
  12. 国考银保监会计算机类笔试,银保监会(计算机类)笔试资料(含2018-2019真题).zip...
  13. php+剧影评系统 毕业设计-附源码140859
  14. 学校机房中无法使用Todesk和向日葵控制寝室电脑,可以使用Parsec进行控制的步骤。
  15. Mac下搭建Texstudio+Textlive(Mactex)
  16. 各种中文分词工具的使用方法
  17. 云计算运维工程师前景怎么样?
  18. 企业为什么选择SDWAN代替MPLS?
  19. Big-man与PHP的交战(一)——阅读PHP代码
  20. [Android]如何做一个崩溃率少于千分之三噶应用app(22)-组件化路由跳转

热门文章

  1. python如何安装pipwindows_如何在Windows上使用python 2.6安装pip
  2. JavaSE基础篇之-Java 流(Stream)、文件(File)和IO
  3. Spring-IOC本质
  4. [vue-router] Duplicate named routes definition: { name: “XXX“, path: “XXX“ }
  5. java 接口 回调_Java接口回调机制详解
  6. 持久化策略RDB和AOF的简单理解
  7. 520超浪漫文艺表白,追求女神必备!!动态Html网页,无编程基础也可娱乐
  8. java 基本语法与流程控制_java基础语法2-运算符与流程控制
  9. 函数的基本知识点总结(附实例)
  10. C# mysql导入文件报错:The used command is not allowed with this MySQL version