如何解决androidspring框架资源访问异常?

vcudknz3  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(182)

我在连接api时收到以下错误消息。
不会每次都出错。请对此提出宝贵建议。

  1. org.springframework.web.client.ResourceAccessException: I/O error: Unable to resolve host "website.name.org": No address associated with hostname; nested exception is java.net.UnknownHostException: Unable to resolve host "website.name.org": No address associated with hostname

我的代码:

  1. Object responseObject = refSpringRequest(object);
  2. public String refSpringRequest(JSONObject refObject) throws Exception{
  3. ResponseEntity<String> response = null;
  4. String resString;
  5. try {
  6. //.......................................................
  7. RestTemplate restTemplate = new RestTemplate();
  8. StringHttpMessageConverter sconverter = new StringHttpMessageConverter();
  9. restTemplate.getMessageConverters().add(sconverter);
  10. restTemplate.getMessageConverters().add(new org.springframework.http.converter.xml.SourceHttpMessageConverter());
  11. restTemplate.getMessageConverters().add(new org.springframework.http.converter.FormHttpMessageConverter());
  12. org.springframework.http.converter.json.MappingJacksonHttpMessageConverter converter = new org.springframework.http.converter.json.MappingJacksonHttpMessageConverter();
  13. converter.getObjectMapper().configure(SerializationConfig.Feature.WRITE_NULL_MAP_VALUES, false);
  14. converter.getObjectMapper().configure(SerializationConfig.Feature.WRITE_NULL_PROPERTIES, false);
  15. converter.getObjectMapper().configure(SerializationConfig.Feature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS, true);
  16. restTemplate.getMessageConverters().add(converter);
  17. restTemplate.setRequestFactory( new HttpComponentsClientHttpRequestFactory());
  18. restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(HttpUtils.getNewHttpClient()));
  19. //.......................................................
  20. HttpHeaders headers = new HttpHeaders();
  21. headers.setContentType(MediaType.APPLICATION_JSON);
  22. HttpEntity<String> entity = new HttpEntity<String>(refObject.toString(), headers);//ZedAPI.URL_PAYMENT_REFERENCE
  23. response = restTemplate.exchange(ZedAPI.URL_PAYMENT_REFERENCE_SPRING, HttpMethod.POST, entity, String.class);
  24. resString = response.getBody();
  25. } catch(HttpStatusCodeException e) {
  26. resString=e.getResponseBodyAsString();
  27. }
  28. return resString;
  29. }

util类:

  1. public class HttpUtils {
  2. public static HttpClient getNewHttpClient() {
  3. try {
  4. KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
  5. trustStore.load(null, null);
  6. SSLSocketFactory sf = new EasySSLSocketFactory(trustStore);
  7. sf.setHostnameVerifier(
  8. SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
  9. HttpParams params = new BasicHttpParams();
  10. HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
  11. HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
  12. SchemeRegistry registry = new SchemeRegistry();
  13. registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
  14. registry.register(new Scheme("https", sf, 443));
  15. ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
  16. return new DefaultHttpClient(ccm, params);
  17. } catch (Exception e) {
  18. return new DefaultHttpClient();
  19. }
  20. }
  21. }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题