2016-08-04 119 views

答えて

1
  1. リダイレクトが発生したときに、中間応答(複数可)を傍受できるカスタムRedirectStrategy ApacheとHttpClientを作成します。
  2. デフォルトの要求工場をHttpComponentsClientHttpRequestFactoryと新しいApache HttpClientに置き換えます。

詳細については、org.apache.http.client.RedirectStrategyをご覧ください。または、次の例のようにDefaultRedirectStrategyを再利用してください。

CloseableHttpClient httpClient = HttpClientBuilder 
     .create() 
     .setRedirectStrategy(new DefaultRedirectStrategy() { 

      @Override 
      public boolean isRedirected(HttpRequest request, HttpResponse response, 
        HttpContext context) throws ProtocolException { 

       System.out.println(response); 

       // If redirect intercept intermediate response. 
       if (super.isRedirected(request, response, context)){ 
        int statusCode = response.getStatusLine().getStatusCode(); 
        String redirectURL = response.getFirstHeader("Location").getValue(); 
        System.out.println("redirectURL: " + redirectURL); 
        return true; 
       } 
       return false; 
      } 
     }) 
     .build(); 
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient); 
RestTemplate restTemplate = new RestTemplate(factory); 
....... 
関連する問題