代碼功能:通過java代碼獲取網頁源代碼:
所用工具:Myclipse8.5+tomcat6.0+浏覽器
系統環境:windows xp旗艦版
火狐浏覽器版本:
IE浏覽器版本:
測試http協議有錯誤java代碼如下。
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; public class testhttp { public static void main(String[] args) throws Exception { Socket s=new Socket("127.0.0.1",8084); PrintWriter pw =new PrintWriter(new OutputStreamWriter(s.getOutputStream())); pw.println("GET / HTTTP/1.1"); pw.println("Host:PC2014040911DWA"); pw.println("Content-Type:text/html"); pw.println(); pw.flush(); BufferedReader br =new BufferedReader(new InputStreamReader(s.getInputStream())); String str =""; while((str =br.readLine())!=null){ System.out.println(str); } br.close(); pw.close(); s.close(); } }
控制台錯誤信息:
查看本欄目
狀態:
tomcat已經正常打開,我的 tomcat端口8084:
浏覽器輸入地址可以打開:
已經嘗試過的:
1.自己百度查詢505錯誤信息:
HTTP 505錯誤是HTTP狀態碼的一種,表示“HTTP版本不受支持”,當服務器不支持請求中所使用的HTTP協議版本時就回返回此錯誤,最為常見的是 HTTP/1.1。
解決505錯誤辦法:
如果啟用了 HTTP 1.1,則可能出現此類錯誤。要禁用 HTTP 1.1,請單擊“工具”按鈕,單擊“Internet 選項”,然後單擊“高級”選項卡。在“設置”下,滾動到“HTTP 1.1 設置”部分,清除“使用 HTTP 1.1”復選框。如果第三方產品干擾 Internet Explorer,則可能出現此類錯誤。請嘗試關閉所有程序,然後重新嘗試訪問該網頁。
大多數浏覽器都默認Web服務器支持 1.x 的版本的 HTTP 協議。但實際上如 0.9 版今天已很少使用,關鍵是因為和新版本的協議比起來它們的安全性和性能都差得多。 所以,如果您在浏覽器中看到這個錯誤,可以升級您的Web服務器軟件。如果版本 1.x 的請求失敗,很可能是因為您的 Web 服務器不是很好地支持 1.x 協議版本, 而不是根本不支持。
.經過嘗試無效。
2.谷歌牛人博客
經驗總結:HTTP返回505錯誤小記
上面方法經嘗試,未果。
所以在csdn發帖求助。
http://bbs.csdn.net/topics/390788096
結果還是沒有找到方法。
後來又自己讀了百度百科裡面這句話:
505錯誤的最專業描述
505 (HTTP Version Not Supported/不支持的 HTTP 版本)
505 (SC_HTTP_VERSION_NOT_SUPPORTED)狀態碼是說服務器並不支持在請求中所標明 HTTP 版本。
該狀態是新加入 HTTP 1.1的。
於是試著把http1.1版本號刪掉。哈哈,終於成功啦。
正確運行代碼:
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; public class testhttp { public static void main(String[] args) throws Exception { Socket s=new Socket("127.0.0.1",8080); PrintWriter pw =new PrintWriter(new OutputStreamWriter(s.getOutputStream())); pw.println("GET /"); pw.println("Host:PC2014040911DWA"); pw.println("Content-Type:text/html"); pw.println(); pw.flush(); BufferedReader br =new BufferedReader(new InputStreamReader(s.getInputStream())); String str =""; while((str =br.readLine())!=null){ System.out.println(str); } br.close(); pw.close(); s.close(); } }
效果如下: