`
Franciswmf
  • 浏览: 799826 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

restTemplate调用GET/POST接口

 
阅读更多
org.springframework.web.client.RestTemplate以GET或POST方式调用微服务接口:
	public String invokeService(HttpMethod httpMethod, UrlSe urlSe, String getParams, MultiValueMap<String, String> postParams, String token){
		if(null == httpMethod || null==urlSe){
			LOG.info(Constants.INPUT_PARAMS_ILLEGAL);
			throw new BusinessException(Constants.INPUT_PARAMS_ILLEGAL);
		}
		URI uri = util.getServiceUrl(urlSe.getService(), Constants.ERROR_URL);
		String url=uri.toString() + urlSe.getUrl();
		String resultString=null;
		//header
		HttpHeaders httpHeaders = new HttpHeaders();
		if(StringUtils.isNotBlank(token)){
			httpHeaders.add(Constants.TOKEN, token);
		}
		if(HttpMethod.GET.equals(httpMethod)){
			//get方法
			httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
			//"?a=" + 1+"&b="+2
			url += getParams;
			HttpEntity<String> requestEntity = new HttpEntity<String>(httpHeaders);
			resultString= restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class).getBody();
		}else if(HttpMethod.POST.equals(httpMethod)){
			//post方法
			HttpEntity<MultiValueMap<String, String>> httpEntity=new HttpEntity<>(postParams, httpHeaders);
			resultString = restTemplate.postForEntity(url, httpEntity, String.class).getBody();
		}else {
			LOG.info(Constants.INPUT_PARAMS_ILLEGAL);
			throw new BusinessException(Constants.INPUT_PARAMS_ILLEGAL);
		}
		LOG.info("resultString={}", resultString);
		//处理响应数据: 只返回result部分
		JSONObject jsonObject = JSONObject.fromObject(resultString);
 		if(!jsonObject.isNullObject()){
 			//只返回result部分
			String result = jsonObject.getString(Constants.RESULT);
			return result;
		}
		return null;
	}


POST调用:
MultiValueMap<String, String> requestEntity = new LinkedMultiValueMap<String, String>();
requestEntity.add("a", 1);
requestEntity.add("b", 2);
String jsonString=tools.invokeService(HttpMethod.POST, UrlSe.USER_INFO, null, requestEntity, null);
if(StringUtils.isBlank(jsonString)){
	LOG.info(ValueConstants.USER_INFO_NOT_FOUND);
	throw new BusinessException(ValueConstants.USER_INFO_NOT_FOUND);
}


GET调用
String getParams="?a="+1;
String jsonString=commonTools.invokeService(HttpMethod.GET, UrlSource.QUERY_ROLE_ID, getParams, null, token);
if(StringUtils.isBlank(jsonString)){
	LOG.info(ValueConstants.INPUT_PARAMS_ILLEGAL);
	throw new BusinessException(ValueConstants.INPUT_PARAMS_ILLEGAL);
}
分享到:
评论

相关推荐

    使用RestTemplate进行feignclient调用

    使用 RestTemplate 实现该接口,你需要构建一个 GET 请求: ```java String url = "http://service-provider/api/users/" + userId; HttpEntity&lt;?&gt; requestEntity = new HttpEntity&lt;&gt;(headers); ResponseEntity...

    使用httpclient方式和RestTemplate方式调用http及https接口

    下面是如何使用RestTemplate调用HTTP接口的例子: ```java RestTemplate restTemplate = new RestTemplate(); ResponseEntity&lt;String&gt; response = restTemplate.getForEntity("http://example.com/api", String....

    RestTemplate实现服务间调用demo案例

    以下是一个简单的RestTemplate调用服务的步骤: 1. **引入依赖**:在项目中添加Spring Cloud的相关依赖,确保RestTemplate可用。在`pom.xml`中加入如下依赖: ```xml &lt;groupId&gt;org.springframework.boot&lt;/...

    REST WebService 调用工具类

    相信大家在调用rest webservice通常使用httpclient.该示例代码是使用httpconnection的形式,以POST和GET两种方式提交调用REST WebService。在项目中一直使用的工具类,分享给大家

    Java发送HTTP请求GET/POST测试

    与GET类似,首先也是创建URL对象并获取HttpURLConnection实例,但需要调用setDoOutput(true)开启输出流支持,然后通过OutputStream写入要提交的数据。完成数据发送后,再连接并读取响应。 4. **示例代码** - GET...

    微服务的RestTemplate调用和声明式调用

    "微服务的RestTemplate调用和声明式调用"这个主题深入探讨了两种常见的服务间通信方式。让我们逐一解析这两种方法。 首先,`RestTemplate`是Spring框架提供的一种客户端HTTP工具,主要用于发送RESTful请求并接收...

    RestTemplate的GET方法详解.docx

    RestTemplate是Spring框架中用于处理HTTP客户端操作的重要工具,它提供了多种方法来发送HTTP请求,如GET、POST、PUT等。在本篇文章中,我们将详细探讨两个常用的GET方法:`getForObject()`和`getForEntity()`。 1. ...

    HttpClient模拟get,post请求并发送请求参数(json等)

    无论是在测试API接口,还是在集成外部服务,HttpClient都是一个值得信赖的选择。然而,需要注意的是,随着Java生态的发展,Spring Framework中的RestTemplate或WebClient(针对Spring Boot 2.x及以上版本)也成为了...

    spring rest mvc使用RestTemplate调用

    如果需要在请求发送前或接收响应后执行某些操作,可以使用`ClientHttpRequestInterceptor`接口实现自定义逻辑,然后将其添加到`RestTemplate`的拦截器链中。 8. **使用Retrofit或WebClient替代** 虽然`...

    http和WebService 调用接口Java代码demo

    Spring Boot项目中,RestTemplate是常用的HTTP客户端工具,可以方便地发起GET、POST等HTTP请求。例如,调用一个GET接口的简单代码如下: ```java @Autowired private RestTemplate restTemplate; public String ...

    RestTemplate的使用及需要注意的地方

    在Java开发中,`RestTemplate` 是一个非常重要的工具,用于执行HTTP客户端操作,比如GET、POST、PUT等。它是Spring框架的一部分,提供了一个简单易用的API来发送HTTP请求并处理响应。本文将深入探讨`RestTemplate`的...

    RestTemplate如何通过HTTP Basic Auth认证.docx

    RestTemplate 是 Spring 提供的一个用于发送 HTTP 请求的客户端工具,它可以方便地进行 GET、POST 等各种 HTTP 方法的操作。在涉及到需要身份验证的场景,比如 HTTP Basic Auth,RestTemplate 也能很好地支持。 ...

    Java调用第三方接口示范的实现

    `RestTemplate`同样支持GET和POST请求,以及处理不同类型的响应数据,如JSON、XML等。使用`RestTemplate`时,代码通常更加简洁,适合Spring环境。 在实际应用中,我们可能需要处理各种复杂情况,如超时、重试、错误...

    HTTP接口间调用Demo

    HTTP接口调用是Web开发中的常见操作,尤其在微服务架构和API经济中扮演着重要角色。本资源“HTTP接口间调用Demo”提供了一个实际的Java代码示例和详细的MD格式笔记,旨在帮助开发者更好地理解和应用HTTP接口调用。 ...

    网络请求框架----HttpClient的get,post和图片上传服务器

    本篇文章将深入探讨HttpClient的基本用法,包括GET和POST请求的实现以及如何进行图片上传到服务器。 首先,我们从GET请求开始。GET是最简单的HTTP请求方法,通常用于获取资源。在HttpClient中,我们可以使用`...

    使用spring restTemplete 调用腾讯接口返回Entity

    本篇文章将详细讲解如何利用Spring的`RestTemplate`调用腾讯接口,并处理返回的`Entity`对象,同时还会涉及到FastJson这个流行的JSON解析库。 `RestTemplate`是Spring提供的一个客户端HTTP模板类,用于简化HTTP请求...

    ssm+http调接口

    3. **RestTemplate**:Spring提供的`RestTemplate`是另一种调用HTTP接口的便捷工具,尤其适合RESTful API的调用。它提供了发送GET、POST等请求,处理响应数据,以及进行异常处理等功能。开发者可以通过`exchange()`...

    《深入理解Spring Cloud与微服务构建》学习笔记(十一)~使用RestTemplate和Ribbo消费服务

    例如,我们可以创建一个简单的Controller方法,使用`@LoadBalanced`修饰的RestTemplate调用其他微服务的接口: ```java @RestController public class ConsumerController { @Autowired private RestTemplate ...

    springRestTemplate

    调用 REST 接口的基本流程如下: - 创建 RestTemplate 实例。 - 使用 `exchange()` 或 `execute()` 方法发起请求,这两个方法都需要提供一个 URI 和请求方法。 - 设置请求头和参数。 - 处理响应,如将响应体...

Global site tag (gtag.js) - Google Analytics