带有restTemplate的Post方法,错误为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")

我需要将一个Json发布到服务器并获得Json结果,这是我使用restTemplate实现的。但问题是它总是出错

java.net.UnknownHostException

控制器:

@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