我需要在Java中使用IPv4地址(String或InetAddress對象 - 任何一個都可以)創建http或https URL對象。我已經在這裏待了10個小時了。如何使用Java中的InetAddress對象創建URL對象?
嘗試該撞牆描述如下:
嘗試#1:我試圖通過組裝串,然後將其饋送到一個URL構造,使URL。
- 教科書聲明URL可以是「protocol:// host」,主機可以是主機名或IP地址。但創建一個這樣的URL:
URL a = new URL("http://151.101.65.69");
並打開一個流到此URL(a
)給出一個HTTP錯誤500(內部服務器錯誤 - 發生意外的情況,服務器不知道如何處理)。 - 讓我感到憤怒的是
URL a = new URL("http://stackoverflow.com");
的作品。 - 在這一點上,我卡住了。我不知道要改變什麼,或者如何前進。
- 教科書聲明URL可以是「protocol:// host」,主機可以是主機名或IP地址。但創建一個這樣的URL:
嘗試#2:我嘗試使用InetAddress類中的「getHostName()」方法對IP地址執行反向查找。
- 這應該通過執行反向DNS查找來返回主機名稱。然而,我一直試圖爲151.101.65.69(stackoverflow網絡服務器的IP地址),並查找失敗。由於失敗,我的意思是IP地址作爲字符串而不是主機名作爲字符串返回。我閱讀了Oracle文檔http://docs.oracle.com/javase/1.5.0/docs/api/java/net/InetAddress.html#getHostName(),但我不明白如何克服文檔提及的「安全管理器」(或者確實是反向查找失敗的原因)。
- 我也試過「getCannonicalHostName()」,但那也沒有飛。
我想弄清楚如何使用IP地址打開網站。它看起來像我的瀏覽器遇到與我的代碼相同的問題。我閱讀了How to access site through IP address when website is on a shared host?,但我沒有任何用戶名,因爲我希望能夠打開任何用戶擁有IP地址的網站。添加端口(如80)似乎不起作用;也不會將用戶名留空或使用通用的「用戶」或「來賓」。
我需要的是從一個IPv4字符串或InetAddress對象創建一個URL對象,我卡住了。我知道一個像你這樣的知識淵博的程序員可能會說,從IP地址創建URL不是IP地址的目的,或者指出我沒有包含URL的文件部分,但這不是問題。你能幫我解決我的核心挑戰嗎?
如果您在Web瀏覽器中加載「http:// 151.101.65.69」,會發生什麼情況? – chrylis
@chrylis我收到一條錯誤消息:「Fastly error:unknown domain:151.101.65.69。Please check that this domain has been added to a service。」 – Mike
我忘了在帖子中提到這個,但是我也收到了我嘗試的其他地址的消息,例如Google和Duckduckgo。 – Mike