2011-11-09 3 views
0

http://freedns.afraid.org/에 URL 리디렉션을 설정 했으므로 응용 프로그램에서 코드를 변경하지 않고도 응용 프로그램에서 다운로드 한 파일로 호스트를 변경할 수 있습니다.Resolve URL Redirect

문제는 파일을 다운로드하기 전에 올바른 URL을 해결해야한다는 것입니다. 나는 여기서 찾은 방법을 시도했지만 작동하지 않았다 (Webrequest).

일반적인 리디렉션을 사용하지 않는 것으로 가정합니다.

어떻게 실제 URL/IP를 해결할 수 있습니까?

UPDATE :

내가 freedns에있는 또 다른 하위 도메인을 가지고 있고, 당신이 그 일에 downloadstring을 할 경우 당신이로 리디렉션해야하는 페이지를 얻을. 정보가 도움이 될 수 있습니다.

UPDATE2 : 여기

내가 다른 웹 페이지를 가져 오는 데 사용하는 코드입니다 : 내가 웹 페이지 b의 문자열을 얻을 그 코드를 실행하여 그래서

 WebClient client = new WebClient(); 
     string xml = client.DownloadString(new Uri("myfreednshere")); 

을 "myfreednshere"리디렉션 그 에.

즉, 웹 클라이언트가 URL 리디렉션을 해결하는 데 성공했음을 의미합니다. 리디렉션 만 해결할 수있는 코드가 있습니까?

갱신 3 :

이다 나는 HttpRequest를 함께 얻을 응답 :

{X-Abuse: URL redirection provided by freedns.afraid.org - please report any misuse of this service 
Keep-Alive: timeout=15, max=100 
Connection: Keep-Alive 
Transfer-Encoding: chunked 
Cache-Control: public, max-age=15 
Content-Type: text/html 
Date: Wed, 09 Nov 2011 21:55:21 GMT 
Server: Apache/1.3.41 (Unix) PHP/5.3.6 with Suhosin-Patch 
X-Powered-By: PHP/5.3.6 

} 
+0

코드가 다른 URL이 아닌 하나의 URL에서 작동하는 경우 문제가 코드보다는 리디렉션에 있음을 제안합니다. 브라우저에서 해당 URL로 이동하면 올바른 위치로 리디렉션됩니까? 문서를 가져 오는 데 사용하는 코드를 표시 할 수 있습니까? –

+0

@JimMischel 지금 내 질문을 업데이트했습니다. – fgblomqvist

+0

내 대답에 대한 독성의 의견에 기반 http://stackoverflow.com/questions/8072052/resolve-url-redirect/8072355#8072355 Freedns에 대한 질문이 있어야합니까? 웹 애플리케이션으로 이동 하시겠습니까? – McKay

답변

2

I을 : HttpWebRequest를 사용해보십시오 적어도 하나의 afraid.org 사이트 (http://fb.afraid.org, 빠른 검사를 할 수있는 유일한 도메인)는 HTTP 리디렉션, 301 리디렉션 또는 프록시를 사용하지 않는 것으로 나타났습니다. 그것은 프레임을 사용합니다. 그래서, 원래의 코드가 작동해야합니다 //www.fragbite :

WebClient client = new WebClient(); 
    string html = client.DownloadString(new Uri("http://fb.afraid.org")); 

호출의 결과가 실제 URL (HTTP했다 :

WebClient client = new WebClient(); 
    string xml = client.DownloadString(new Uri("myfreednshere")); 

을 약간의 수정과 함께,이 코드를 사용했다. co.kr)를 주석에 한 번, 프레임 소스에 한 번, noframes 태그의 링크 한 번에 세 곳에서 볼 수 있습니다.당신은 프로그래밍 방식으로 그것을 필요로하는 경우 URL을 구문 분석 할 수 있어야합니다.

+0

내가 천재라고 말 했니? 글쎄, 내가 알지는 못했지만 너는 정말로 하나 다.) 나는 방화 녀와 수표를 찍었고이 태그를 맨 위에 발견했다. 그래, 그냥 그 페이지를 스캔하고 그 문자열을 얻을 것이다. 정말 고마워! – fgblomqvist

0

그래서 당신은 301 리디렉션을 원하는거야?

두 가지 방법으로 처리 할 수 ​​있습니다. 이것이 .NET 인 경우 IIS 7을 사용하는 경우 URL 재 작성 모듈 (http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/)을 사용하거나 수행중인 작업을 알고있는 경우 web.config 파일을 직접 수정할 수 있습니다.

<system.webServer> 
    <httpRedirect enabled="true" destination="http://domain.com/products" httpResponseStatus="Permanent" /> 
</system.webServer> 

(301)의 http://knowledge.freshpromo.ca/seo-tools/301-redirect.php

+0

아니요 리디렉션을 제어 할 권한이 없습니다. url은 url로 리디렉션됩니다. b. URL을 가지고 뭔가를함으로써 나는 URL을 검색하고 싶다. b. – fgblomqvist

1

웹 클라이언트 클래스는 리디렉션을 다음 처리하는 방법에 대한 자세한 정보를 원하시면이 링크를 따르십시오. 요청이 이루어진 후

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(url); 
httpRequest.AllowAutoRedirect = false; 

, "위치"HTTP 헤더 중 하나가 리디렉션 된 위치를 제공을 (그러나 AllowAutoRedirect가 꺼져 있기 때문에 따라하지 않았다)

+0

내 대답에 작성한 코드를 제공합니다. "freedns.afraid.org에서 제공하는 URL 리디렉션 -이 서비스의 오용을보고하십시오." – fgblomqvist

+0

그런 경우 리디렉션을 제어 할 수 없습니다. freedns가 데이터를 가져 와서 가져 왔습니다. 코드에서 제어 할 수 없으며 프록시가이를 수행합니다. – McKay

+1

위 코드를 사용하면 리디렉션되는 URL 인 위치 (http://en.wikipedia.org/wiki/HTTP_location)를 얻을 수 있습니다. 위치를 얻으려면,'response.GetResponseHeader ("Location")'. 'ResponseHeaders [ "Location"]'속성을 통해'WebClient'와 함께 사용할 수도 있습니다. –