2012-06-01 2 views
1

자바 관련 질문이 있습니다 ...자바 및 웹 사이트 리디렉션 감지

웹 사이트 www.stationv3.com은 매일 업데이트됩니다 (적어도 대부분은 다소 불규칙합니다). www.stationv3.com 주소 (브라우저 사용)를 사용하여 사이트에 연결할 때마다 서브 페이지로 이동합니다.

나는 최신 만화를 사이트에서 가져 왔지만 정확한 주소를 찾는 방법을 모르겠습니다. 하지만 모든 연결에서 어디로 리디렉션되는지 어떻게 든 알 수 있을지 알 수 있습니다. Java로 가능합니까? 나는 그것이 모든 종류의 기발한 것들을 할 수 있다는 것을 알고 있지만, 나는 여전히 인터넷 관련 물건에 처음이다. ...

나는 정확한 것을 확인하기 위해 정확한 사이트 이름을 사용했다 ... 그리고 또한, 나는 일반적인 코드를 만들고 있는데, 그 코드는 그런 방식으로 기능하는 사이트에 적용될 수있다.

+0

리디렉션이 어떻게 수행되는지 알아냅니다. 자바 스크립트? 위치 헤더가 있습니까? 일단 그걸 발견하면 우리가 너를 도울 수있을거야. –

+0

date_of_latest_update.html로 리디렉션되는 URL에 주소가 없습니까? –

+0

리디렉션을 시도하지 않고 리디렉션되는 위치를 찾으려고합니다. 아니, 그것은 단지 www.stationv3.com에 머무른다. – Karlovsky120

답변

2
import java.net.*; 
public class ShowStationV3Redirect { 
public static void main(String[] args) throws Exception { 
    URL url = new URL(args[0]); 
    HttpURLConnection.setFollowRedirects(false); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
    System.out.println("Response code = " + connection.getResponseCode()); 
    String header = connection.getHeaderField("location"); 
    if (header != null) 
     System.out.println("www.stationv3.com redirected to " + header); 
} 
} 

위의 코드 스 니펫은 리디렉션되는 URL을 알려줍니다.

http://www.stationv3.com/comics/{yyyy}{mm}{dd}sv3.gif 

및 재 지정 문제에 대해 잊지 :

0

내가 방금 fecth 수 있다고 생각. 이 코드를 사용할 수 있습니다 (실제로 테스트하지 않음).

URL server = new URL("<put here the image URL>"); 
HttpURLConnection connection = (HttpURLConnection)server.openConnection(); 
connection.setRequestMethod("GET"); 
connection.setDoInput(true); 
connection.setDoOutput(true); 
connection.setUseCaches(false); 
connection.addRequestProperty("Accept","image/gif"); 
connection.addRequestProperty("Accept-Encoding", "gzip, deflate"); 
connection.connect(); 
InputStream is = connection.getInputStream();  
OutputStream os = new FileOutputStream("c:/mycomic.gif"); 

byte[] buffer = new byte[1024];  
int byteReaded = is.read(buffer); 
while(byteReaded != -1) 
{ 
    os.write(buffer,0,byteReaded); 
byteReaded = is.read(buffer); 
} 

os.close(); 
+0

내가 할 수는 있지만 정확한 주소를 모른다. 희극이 잠시 동안 업데이트되지 않을 가능성이 있으므로 오늘 날짜를 입력하고 연결하려고하면 실패 할 것이다. 그래서 최신 주소를 가져야합니다. – Karlovsky120

+0

@ Karlovsky120 HTTP 요청을하면 404. – Michael

+1

@ Karlovsky120의 HTTP 요청을 확인할 수 있습니다. BTW는 웹 사이트에 최신 이미지 주소를 가져 오는 데 사용할 수있는 RSS 피드가 있음을 알아 챘습니까? 어쩌면 그것이 대안이 될 수 있습니다. – loscuropresagio