【问题标题】:does wrong url cause ResourceAccessException?错误的 url 会导致 ResourceAccessException 吗?
【发布时间】:2018-04-04 18:17:05
【问题描述】:
import java.net.URI;
import org.apache.tomcat.util.codec.binary.Base64;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;

 ...
        ResponseEntity<?> result;
        try {
            String url = "domainname?sysparm_query=sys_class_name=asdf^u_numberSTARTSWITHAP122&fields=num,play_name&asdf_lt=5";


            UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
            URI uri = builder.build().toUri();
            LOG.info(uri);
            String plainCreds = "username:password";
            byte[] plainCredsBytes = plainCreds.getBytes();
            byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
            String base64Creds = new String(base64CredsBytes);
            HttpHeaders headers = new HttpHeaders();
            headers.add("Authorization", "Basic " + base64Creds);
            // headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
            RestTemplate restTemplate = new RestTemplate();
            HttpEntity<String> entity = new HttpEntity<String>(headers);
            result = restTemplate.exchange(uri, HttpMethod.GET, entity, String.class);

            System.out.println(result);
            LOG.info(url);

            if (result != null) {
                LOG.info(result.getBody());
            }

        } catch (Exception e) {
            result = new ResponseEntity<String>(LocalDateTime.now() + " :: Success", HttpStatus.OK);
            e.printStackTrace();
        }

上面的代码抛出下面的异常

org.springframework.web.client.ResourceAccessException: GET 请求的 I/O 错误

但是,当我在浏览器或邮递员中尝试时 - 我收到了正确的结果。

【问题讨论】:

    标签: spring-boot resttemplate


    【解决方案1】:

    这是造成的,因为没有设置代理。 设置代理后,它开始工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      • 2012-10-16
      相关资源
      最近更新 更多