2013-10-24 3 views
0

나는 HTML 문서를 파싱 한 다음 몇 가지 URL을 얻는 응용 프로그램을 만들었습니다. 문제는 URL 만 탐색기에서 직접 다운로드 할 수 있다는 것입니다.직접 URL을 얻기 위해 리디렉션 URL

VB.NET 또는 C#에서이 URL을 리디렉션하여 나중에 직접 다운로드 할 링크를 붙여서 다운로드 관리자에 다운로드 할 수 있습니까?

dim url as string = "http://m.mrtzcmp3.net/get.php?singer=Madonna&song=Like%20A%20Virgin%20&size=5242104&ids=687474703a2h2h63733434303876342g766s2g6f652h75323237363831362h617564696h732h3132323564303466333839622g6f7033" 

나는 어쩌면 내가 틀렸다 및 URL이 그냥 그런 종류의 리디렉션하는 방법을 나에게 말 해주세요, 리디렉션 아무라도 유사한 결함을 가지고, 내가 많은 HTTP 물건 실험 아니에요 말할 필요 urls 또는 내가 틀렸다면.

UPDATE :

이를 시도,하지만 난 어떤 변화없이 동일한 URL을 얻을 : 여기에서이 질문에

:

Dim url As String = _ 
    "http://m.mrtzcmp3.net/get.php?singer=Madonna&song=Like%20A%20Virgin%20&size=5242104&ids=687474703a2h2h63733434303876342g766s2g6f652h75323237363831362h617564696h732h3132323564303466333839622g6f7033" 

    Dim request As HttpWebRequest = DirectCast(HttpWebRequest.Create(url), HttpWebRequest) 
    request.AllowAutoRedirect = True 
    Dim response As HttpWebResponse 
    Dim resUri As String 
    response = request.GetResponse 
    resUri = response.ResponseUri.AbsoluteUri 
    MsgBox(resUri) 

UPDATE (2) HttpWebRequest Login data Then Redirect

그는 리디렉션이 투명하게 처리되는 경우, _response.ResponseURI 이가 리디렉션 주소를 포함

을 말한다. 그렇지 않은 경우 리디렉션 헤더를 읽고 새 페이지를 요청할지 여부를 스스로 결정해야합니다.

그래서 ... 그렇게해야한다면, 어떻게 할 수 있습니까?

UPDATE 3 :

당신이 .MP3 파일 확장자를 가진 모든 URL 마감을 볼 수 ... 직접 URL을 얻을 수 있습니다 파이어 폭스 플러그인, 즉 내가 원하는 무엇

DownloadThemAll

enter image description here

+1

당신이 "나중에 링크를 붙여 넣기에 대한 직접 링크를 얻기 위해 URL을 리디렉션"에 의해 의미합니까 무엇을 명확히 주시겠습니까? –

+0

@Adam Moszczyński URL은 MP3 오디오 파일을 다운로드하는 것입니다. 파일 이름으로 끝날 수있는 "실제 URL"을 얻기 위해 리디렉션 작업을 수행 할 수 있다면 다음과 같이 바란다 : http : //m.mrtzcmp3. net/blahblahblah/file.mp3', 그건 저를위한 직접 링크입니다, 내가 잘못 생각하면 미안 해요. – ElektroStudios

+2

URL은 응답에 직접 작성하여 파일을 처리하는 http 핸들러를 가리킬 수도 있습니다. 거기서 "진짜 URL"일 필요는 없습니다. –

답변

3

, URL을

http://m.mrtzcmp3.net/get.php?singer=Madonna&song=Like%20A%20Virgin%20&size=5242104&ids=687474703a2h2h63733434303876342g766s2g6f652h75323237363831362h617564696h732h3132323564303466333839622g6f7033

은 직접 파일 URL이있는 파일 형식이 필요하지 않고, 직접 URL입니다.

당신이 사용하여 파일을 다운로드 할 수 있습니다

string url = "http://m.mrtzcmp3.net/get.php?singer=Madonna&song=Like%20A%20Virgin%20&size=5242104&ids=687474703a2h2h63733434303876342g766s2g6f652h75323237363831362h617564696h732h3132323564303466333839622g6f7033" 
WebClient wc = new WebClient(); 
wc.DownloadFile(url, fileName); 
당신이 안된

HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); 
string header = myHttpWebResponse.Headers.ToString(); 
fileName = header.Remove(0, header.IndexOf("filename=")+10); 
fileName = fileName.Remove(fileName.IndexOf('"')); 

을 사용하여 파일 이름 (마돈나 같은 처녀의 -www.mrtzcmp3.net.mp3)를 얻을 수

, 그러나 그것은 효과가있다.

편집 :이 당신이 원하는 것을 생각하지만, 나는 귀하의 질문에 오해 할 수

1

HttpWebRequest을 사용하고 AllowAutoRedirect=true을 사용하여 직접 연결을 다운로드하고 파일을 다운로드하십시오.

+0

하지만 그게 내 문제를 해결하지 못합니다. , 내 응용 프로그램 외부에서 다운로드 할 것이라고 HttpWebRequest WebBrowser 컨트롤을 다운로드하려면 사용할 수 없습니다, 난 그냥 다른 응용 프로그램 (s)에서 다운로드하려면 직접 링크를 얻으려면 싶습니다. 답변 주셔서 감사합니다! – ElektroStudios

+1

외부 응용 프로그램에서 내 업데이트를 확인하려는 경우. process.start를 사용하고 예를 들어 Internet Explorer에 URL을 제공하십시오. –

+0

업데이트를 보았지만 동일한 문제가 있습니다. 아직 직접 URL이 없으며 많은 양의 URL을 리디렉션하도록 관리합니다. – ElektroStudios

1

웹 클라이언트를 사용하여 해당 URL에서 콘텐츠 (URL)를 가져 오는 웹 요청을 수행 할 수 있습니다. 그런 다음 리디렉션을 수행하면됩니다.

+0

thankyou, 그래서 내가 리디렉션 URL을 얻을 수 있다는 것을 의미합니까?, 몇 분 안에 그것을 시도 할거야 – ElektroStudios

+1

브라우저에서 URL을 호출하면 URL을 얻을 수 있습니까? 그렇다면 웹 클라이언트에서 가져올 수 있습니다 –

+0

요청을 시도했지만 URL에 변경 사항이 없으므로 업데이트를 볼 수 있습니까? – ElektroStudios

1

URL을 tinyUrl이나 BitLy 같은 URl 줄여서 붙여 넣으려고 할 수 있습니까? 어쩌면 API를 제공하는 단축키 서비스가 있습니까?

파일은 다음에서 다운로드됩니다 http://tinyurl.com/phzhxsr

URL이 dynamicaly 구문 분석하고 파일이 아닌 특정 URL을 다운로드함으로써 retrun 데이터 스트림으로 보낼 수 있습니다 때문에

당신은 사이트 소유자로부터 직접 URL을 얻을하지 않습니다 .내 지식

+0

감사합니다.하지만 단축 URL이 아니라 직접 URL이 필요합니다. '사이트 소유자로부터 직접 URL을 얻지 못할 것입니다.'직접 URL을 얻을 수있는 프로그램을 보여주기 위해 이미지를 업로드하도록 내 질문을 업데이트했습니다. 그들을 다운로드하기 전에. – ElektroStudios

관련 문제