带有restTemplate的Post方法,错误为java.net.UnknownHostException
我需要将一个Json发布到服务器并获得Json结果,这是我使用restTemplate实现的。但问题是它总是出错 java.net.UnknownHostException 控制器:带有restTemplate的Post方法,错误为java.net.UnknownHostException,java,spring,rest,resttemplate,Java,Spring,Rest,Resttemplate,我需要将一个Json发布到服务器并获得Json结果,这是我使用restTemplate实现的。但问题是它总是出错 java.net.UnknownHostException 控制器: @RequestMapping(value = "/test") public String test(HttpServletRequest request, HttpServletResponse response){ String user=request.getParameter("txtUser")
@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
String user=request.getParameter("txtUser");
HttpSession session = request.getSession();
session.setAttribute("result",accountService.findFarmsByUser(user));
return "test";
}
test.jsp:
<form action="test">
<input type="text" value="insert search" name="txtUser">
<input type="submit" value="submit" name="btnSubmit">
<input type="text" value="" name="result">
</form>
服务:
@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
String user=request.getParameter("txtUser");
HttpSession session = request.getSession();
session.setAttribute("result",accountService.findFarmsByUser(user));
return "test";
}
我正在用xml配置端口和主机
//create request json
JSONObject json = new JSONObject().put(
"input",
new JSONObject().put(
"username",
"Administrator"));
// set headers
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(json.toString(), headers);
headers.set(proxyHost,Host);
headers.set(proxyPort,Port);
ResponseEntity<String> loginResponse = restTemplate
.exchange(url, HttpMethod.POST, entity, String.class);
logger.info("reutrn data: {}",loginResponse);
//创建请求json
JSONObject json=新建JSONObject().put(
“输入”,
新建JSONObject().put(
“用户名”,
“管理人”);
//设置标题
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity=新的HttpEntity(json.toString(),标头);
headers.set(代理主机、主机);
headers.set(代理端口、端口);
ResponseEntity loginResponse=restTemplate
.exchange(url、HttpMethod.POST、实体、String.class);
logger.info(“reutrn数据:{}”,loginResponse);
我有什么遗漏吗??。我在公司工作,所以我必须为header配置主机和端口
错误:
org.springframework.web.client.ResourceAccessException:I/O错误
应要求
“http://{myserver:port}/Thingworx/Things/{…}/Services/findUser”:
{myserver};嵌套异常为java.net.UnknownHostException:{myserver}
位于org.springframework.web.client.restemplate.doExecute(restemplate.java:607)
位于org.springframework.web.client.restemplate.execute(restemplate.java:557)
位于org.springframework.web.client.restemplate.exchange(restemplate.java:475)
位于spring.web.services.impl.AccountSerivceImpl.findUser(AccountSerivceImpl.java:115)
在spring.web.controller.PageController.test(PageController.java:89)中
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
可能是你公司的代理人。您可以在spring配置中定义它:
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
Proxy proxy = new Proxy(Type.HTTP, new InetSocketAddress("clientproxy.corp.url", 8080));
requestFactory.setProxy(proxy);
return builder.requestFactory(requestFactory).setConnectTimeout(5000).setReadTimeout(5000).build();
}
您得到相同的答案了吗?请确保您已经导入了
import java.net.Proxy