zoukankan      html  css  js  c++  java
  • 解决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();
            
    
            }
    }

    效果如下:

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    LGWR Trace Warning: Log Write Time ? Maybe not an issue
    Transaction & Undo
    XML Function at a glance
    Java step by step (1) : simple Spring IoC container
    First Impression on BBED: recover deleted rows
    【SQL*PLUS】Copy Command
    SYS_CONTEXT('USERENV', 'HOST') Return NULL & Oracle Fixed Tables
    ORA12519
    Some ORAs (32001, 00106)
    First Impression on BBED: explore block structure using map command
  • 原文地址:https://www.cnblogs.com/xingyunblog/p/3756732.html
Copyright © 2011-2022 走看看