java http 请求问题

cooc123 发布于 2013/09/10 18:05
阅读 315
收藏 0

我用JAVA http 请求PHP 

private String response( HttpURLConnection http ) throws IOException {
        StringBuilder sb = new StringBuilder();
        BufferedReader in = new BufferedReader( new InputStreamReader( http.getInputStream(), charset ) );
        String tmp;
        while ( ( tmp = in.readLine() ) != null ) {
            sb.append( tmp ).append( this.line );
        }
        http.disconnect();
        return sb.toString();
    }

PHP 代码

        header( "HTTP/1.1 500" );
        echo '<h2>HTTP/' . $status . ' (' . $code . ')' . $message . '</h2>';
        echo '<p>' . $message . '</p>';

上面的response 没有读取到内容, 

抛出了 java.io.IOException: Server returned HTTP response code: 500 for URL: http://****


如果把PHP header( "HTTP/1.1 500" ); 改成 header( "HTTP/1.1 200" );

java就能读到内容

怎样让PHP 返回500的时候 JAVA 也能读到 PHP 输出的内容

加载中
0
布谷鸟
布谷鸟

看你是个妹子,我复制点贴过来

HTTP响应码 
 
响应码由三位十进制数字组成。出现在由HTTP服务器发送的响应的第一行。响应码分五种类型,由它们的第一位数字表示:  1XX: 信息  2XX:成功  3XX:重定向  4XX:客户端错误  5XX:服务器错误 

header( "HTTP/1.1 500" )

你这个看样子是?

header( "协议版本 响应状态码" ) 


你都500 HttpUrlConnection直接认为响应错误,

所以

抛出了 java.io.IOException: Server returned HTTP response code: 500 for URL: http://****

cooc123
cooc123
怎样让http 不抛异常 还看可以读流
0
南湖船老大
南湖船老大
抛异常没事啊,你把异常处理了就好,不要让其蔓延
0
布谷鸟
布谷鸟

引用来自“布谷鸟”的答案

看你是个妹子,我复制点贴过来

HTTP响应码 
 
响应码由三位十进制数字组成。出现在由HTTP服务器发送的响应的第一行。响应码分五种类型,由它们的第一位数字表示:  1XX: 信息  2XX:成功  3XX:重定向  4XX:客户端错误  5XX:服务器错误 

header( "HTTP/1.1 500" )

你这个看样子是?

header( "协议版本 响应状态码" ) 


你都500 HttpUrlConnection直接认为响应错误,

所以

抛出了 java.io.IOException: Server returned HTTP response code: 500 for URL: http://****

直接socket 


0
innerp
innerp

妹子查看api吧

try{

读 http.getInputStream();

}catch(Exception ex){

http.getErrorStream();

}

我这里只是简单例子,异常可能还有其他的

cooc123
cooc123
明白了
0
matrixy
matrixy
public InputStream getErrorStream()

Returns the error stream if the connection failed but the server sent useful data nonetheless. The typical example is when an HTTP server responds with a 404, which will cause a FileNotFoundException to be thrown in connect, but the server sent an HTML help page with suggestions as to what to do. This method will not cause a connection to be initiated. If the connection was not connected, or if the server did not have an error while connecting or if the server had an error but no error data was sent, this method will return null. This is the default.

Returns: an error stream if any, null if there have been no errors, the connection is not connected or the server sent no useful data.

使用getErrorStream()方法啊,如果返回状态是5xx或是4xx的时候。。。
使用SOCKET的话,你会被整死的。

返回顶部
顶部