2014-01-15 122 views
0

這是我的問題:重定向html頁面

我必須執行從java代碼到某個頁面後,獲取數據並解析它。 問題是隻有我的國家的IP可以發佈到此頁面。來自另一個IP的請求被拒絕。 我想找到解決方法。 我在我的國家的服務器上添加了我的html頁面(此服務器可從所有ips訪問)。現在我正在從Java代碼發送一個get請求(對所有服務器開放)到這個頁面。 我想要做的是重定向我的HTML頁面張貼到原始頁面。

我試着使用重定向,但它不起作用 - 從Java代碼我得到我的HTML頁面,並沒有重定向一個。

有沒有解決方法或我的問題?

感謝

+0

您是否檢查過這些是否解決您的問題? [如何在jQuery/JavaScript中創建重定向頁面?](http://stackoverflow.com/questions/503093/how-can-i-make-a-redirect-page-in-jquery-javascript?rq=1 )[如何從HTML頁面重定向?](http://stackoverflow.com/questions/5411538/how-to-redirect-from-an-html-page?rq=1) – David

回答

1

我嘗試使用重定向,但它不工作 - 從Java代碼我 得到我的HTML頁面,而不是重定向一個。

是的,它不會工作,因爲重定向在客戶端工作。你對你的HTML頁面執行一個請求,它發回一個重定向頭,你的Java實現不知道如何處理它。即使這樣做,它也必須提出重新定向頁面的新請求,這意味着對重定向頁面的請求仍然來自拒​​絕的IP。

另一種選擇是您的重定向HTML使用JavaScript window.location.assign或類似的東西。這一點仍然是一樣的,因爲這也是客戶端解決方案。

您必須在放置HTML的主機上使用某種服務器端語言,並且在該服務器端腳本中,您必須僅對您的國家/地區URL執行(發佈或獲取請求)請求。通過這種方式,這個唯一的國家/地區URL將會看到請求來自腳本所在的主機,而不是客戶端本身。

例如,如果你能在哪裏目前你的重定向HTML是地方使用Java作爲服務器端語言,那麼你可以看看這個線程:How to send simple http post request with post parameters in java

+0

我沒有很多經驗在網頁編程中, 哪種服務器端解決方案最適合我? 這是非常簡單的服務器。它不認爲它可以運行PHP或Java代碼。 如何編寫java代碼並在服務器端運行它? – Matvey

+0

最好的服務器端解決方案是您的服務器允許您執行的操作。如果服務器是你自己的機器,那麼它可以是任何你感覺舒服的東西,如果你有託管服務提供商,那麼你應該檢查你的選擇與該提供商。 – Tarmo

0

您需要安裝位於服務器上的reverse proxy您國家。如果您向這個反向代理髮出請求,它會向唯一的國家/地區的服務器發出請求,並在它收到響應時將它轉發給您。 因此,只有您的國家/地區的服務器纔會收到與您對反向代理服務器發出的相同請求,但源IP地址已更改爲反向代理服務器的IP。