2012-11-08 3 views
0

inetc이라는 nsis 플러그인이있는 wininet을 사용하여 파일을 다운로드합니다.URL 리디렉션시 파일 이름 확인

예를 들어 http://some.domain.com/myfile.doc과 같이 URL에 사용 된 동일한 파일 이름으로 파일을 저장하려면 myfile.doc으로 저장해야합니다. 문제는 리디렉션이있는 URL이있는 경우입니다. 예를 들어 http://some.domain.com/http://some.domain.com/myfile.doc으로 리디렉션 할 수 있으며 myfile.doc으로 저장하려고합니다.

이 문제를 어떻게 해결할 수 있습니까?

가입일 :

편집 ...

답변

1

INetC 정말를 지원하도록 설계되지 않았습니다하지만 난 당신이 루프에서 INetC::head를 호출하고 더 이상 리디렉션 될 때까지 반환 된 헤더를 구문 분석 할 수 없었다 추측 INetC는 상위 수준의 WinInet 기본 처리에만 의존하는 호출자가 지정한 파일을 처리하도록 설계되었습니다.

INetC를 수정하거나 새로운 플러그인을 만드는 것이 가능할 수도 있지만 서버가 작업을 수행하는 것이 적을 수 있습니다. INetC :: head가 다운로드 할 수있는 내용 처리 헤더 또는 serveret.getname과 같은 특수한 URL을 반환 할 수 있으므로 INetC :: get로 이름을 먼저 가져온 다음 실제 INetC ::를 수행하십시오. 올바른 대상 파일 이름을 얻으십시오 ...

+0

답장을 보내 주셔서 감사합니다. 나는 그것을 시도했지만 헤더에 리다이렉션과 관련된 어떠한 것도 얻지 못한다. 당신은 정교 할 수 있는가? HTTP/1.1 200 OK Accept-Ranges : bytes Content-Type : application/octet-stream ETag : "985a0576bbccd1 : 0" 최종 수정 : 11 월 6 일 화요일 2012 그리니치 표준시 22시 09분 8초 서버 : 마이크로 소프트 IIS/7.5 X-구동 - 기준 : ASP.NET 콘텐츠 길이 : 453,112 날짜 : 2012년 (목) 11월 8일 그리니치 표준시 20시 41분 3초 연결 : keep- alive '... 사실 wireshark로 확인해 봤는데'inetc :: head'가 여전히 모든 재검색을하고있는 것처럼 보입니다. – zenpoy

+0

WinINet에는 HTTP_QUERY_CONTENT_LOCATION과 INTERNET_FLAG_NO_AUTO_REDIRECT가 있지만 INetC는 사용 방법을 공개하지 않습니다. – Anders

+0

노출되지 않지만 노출 할 수 없다는 의미는 아닙니다. 포인터를 주셔서 감사합니다. 'INTERNET_OPTION_URL'. 이 기능을 inetc에 추가하고 nsis 포럼의 스레드에 게시합니다 (물론 내 문제를 해결할 수 있다면). – zenpoy