2012-10-18 43 views
2

我正在做的是使用Jsoup來解析WordPress下載監視器url形式的下載url。 例如:http:// ** .com/wp-content/plugins/download-monitor/download.php?id = 11036當您點擊此鏈接時,它會打開一個新的下載頁面,使用ID 11036下載真實的文件。如何下載使用WordPress下載監視器插件重定向的真實文件?

我的問題是我怎麼能繞過該下載監視器插件,並獲得真正的文件的網址?

更新1: 這裏是用於重定向的java代碼。

<script type="text/javascript"> 
console.log(location.href); 
var hasAutoDonload = false; 
var address; 
if(location.href.indexOf("d3") > 0){ 
address = "http://d3.apknew.com/download.php" + window.location.href.replace("http://apknew.com/download-page",""); 
}else{ 
address = "http://d2.apknew.com/download.php" + window.location.href.replace("http://apknew.com/download-page",""); 
} 
var hasTouch = 'ontouchstart' in window; 
window.onload = function(){ 
if(!hasAutoDonload){ 
downloadFun(); 
} 
} 
function downloadFun(){ 
hasAutoDonload = true; 
if(hasTouch){ 
window.location.href = address; 
}else{ 
document.getElementById("downloadIframe").src = address; 
} 
} 
function downloadFun1(){ 
window.open(address) 
} 
//http://d2.apknew.com/download.php?i=er59f9t&#038;n=QuickPic_2.0%20beta.apk&#038;d=2012-02 
</script> 

回答

2
java.lang.CharSequence uri = "<your_url>"; 
java.net.URL url = new java.net.URL(uri.toString()); 
java.net.HttpURLConnection httpURLConnection = (java.net.HttpURLConnection) url.openConnection(); 
httpURLConnection.setInstanceFollowRedirects(false); 
httpURLConnection.connect(); 
int responseCode = httpURLConnection.getResponseCode(); 
Log.i("Response Code", responseCode); 
String header = httpURLConnection.getHeaderField("Location"); 
Log.i("Final URL", header); 

在這裏,最後的URL存儲在header。確保你在你提供的URL中包含協議。另外,我已經用301重定向測試過了。不確定它是否可以與JavaScript或其他重定向一起使用。

+0

看到我的編輯我包括用於重定向的JavaScript。我會嘗試你的代碼並回報。 – homi3kh

+0

我測試了你的代碼,它返回的是下載頁面的url而不是真實的文件。 例如:從'http://blahblah.com/wp-content/plugins/download-monitor/download.php?id = 11036'到'http://blahblah.com/download-page?i=vXcYVW&d=2012 -10&n = 97100_1350569493_5712.apk&f = d3' – homi3kh

+0

這是因爲代碼適用於301重定向,而不是javascript。它將適用於網址縮短和大多數WordPress頁面等網址。 –