运用spring框架使用RestTemplate请求接口

本文介绍了如何在Spring项目中利用RestTemplate组件来请求外部接口。首先,需要在Maven配置中引入Jackson库,然后通过@Autowired注解实现RestTemplate的自动注入,以此完成接口调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中要请求别的项目的接口,所以使用RestTemplate进行请求,使用spring注入的方式

注意这里要先在maven中引入jackson

	    <dependency>
	      <groupId>com.fasterxml.jackson.core</groupId>
	      <artifactId>jackson-databind</artifactId>
	      <version>2.9.0</version>
	    </dependency>
spring中的配置
<bean id="httpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
		<property name="supportedMediaTypes">
			<list>
				<value>application/octet-stream;charset=UTF-8</value>
				<value>application/json;charset=UTF-8</value>
			</list>
		</property>
	</bean>
	<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
		<property name="messageConverters">
			<list>
				<ref bean="httpMessageConverter"></ref>
				<bean class="org.springframework.http.converter.StringHttpMessageConverter">
					<property name="supportedMediaTypes">
						<list>
							<value>text/html;charset=UTF-8</value>
							<value>text/javascript;charset=utf-8</value>
						</list>
					</property>
				</bean>
			</list>
		</property>
		<constructor-arg ref="simpleClientHttpRequestFactory"></constructor-arg>
	</bean>

	<bean id="simpleClientHttpRequestFactory" class="org.springframework.http.client.SimpleClientHttpRequestFactory">
		<property name="connectTimeout" value="6000"></property>
		<property name="readTimeout" value="40000"></property>
	</bean>

java中使用@autowired注入

	@Autowired
	private RestTemplate restTemplate;

	private JSONObject getDataFromServer(String url, JSONObject object) {
		HttpHeaders headers = new HttpHeaders();
		headers.setContentType(MediaType.APPLICATION_JSON);
		JSONObject data = null;
		String objectStr = JsonUtils.parseBeanToJson(object);
		log.info("MD5加密数据:" + objectStr + "123456");
		String check = Md5Util.getMD5(objectStr + "123456");

		Map<String, String> m = new HashMap<>();
		m.put("check", check);
		m.put("json", objectStr);

		HttpEntity<Map<String, String>> entity = new HttpEntity<>(m, headers);
		try {
			log.info("请求第三方发送的url为:{}; 参数:{},", url, JSONObject.fromObject(m));

			data = restTemplate.postForObject(url, entity, JSONObject.class);
			log.info("请求第三方返回数据:{}", JSONObject.fromObject(data));

		} catch (Exception e) {
			log.error("请求网络地址数据报错:", e);
		}
		return data;
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值