2011-09-24 4 views
1

실제로 URL에서 리디렉션을 연결하는 위치를 알 수 있습니다. 리디렉션 URL 웹 사이트에서 testinf를 실행하면 URL 리디렉션 유형 301이 제공됩니다. 그래서 아래 링크를 기반으로 실제 링크를 테스트합니다. Get hold of redirect url with Java org.apache.http.client리디렉션 URL 유형 301 in Java

코드는 다음과 같습니다

HttpGet httpget = new HttpGet(filename); 
HttpContext context = new BasicHttpContext(); 
DefaultHttpClient httpClient = new DefaultHttpClient(); 
HttpResponse response = httpClient.execute((HttpUriRequest) httpget, context); 
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) 
    throw new IOException(response.getStatusLine().toString()); 
HttpUriRequest currentReq = (HttpUriRequest) context.getAttribute(ExecutionContext.HTTP_REQUEST); 
HttpHost currentHost = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST); 
String currentUrl = currentHost.toURI() + currentReq.getURI(); 
System.out.println(currentUrl); 

그러나 나는이 메시지를 받았습니다 :

방법은 실행 (HttpUriRequest, HttpContext를) 타입 AbstractHttpClient이> (인수 적용되지 않습니다에 HttpGet, HttpContext)

이 코드에서 어떤 문제가 발생합니까?

답변

1

귀하의 코드는 다음과 HttpClient를 종속성과 나를 위해 잘 작동합니다 :

<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpclient</artifactId> 
    <version>4.1.2</version> 
</dependency> 

이러한 수입과 : 올바른 종속성을 사용하는

import org.apache.http.HttpHost; 
import org.apache.http.HttpResponse; 
import org.apache.http.HttpStatus; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.client.methods.HttpUriRequest; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.protocol.BasicHttpContext; 
import org.apache.http.protocol.ExecutionContext; 
import org.apache.http.protocol.HttpContext; 

확인합니다.