解决java代码测试http协议505错误

代码功能:通过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 / HTTP/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();
        

        }
}

效果如下:

 

 

 

 

 

 

 

 

 

 

posted @ 2014-05-28 11:51  技术宅星云  阅读(10914)  评论(4编辑  收藏  举报