5
回答
java http 请求问题
开发十年,就只剩下这套Java开发体系了   

我用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 输出的内容

<无标签>
举报
cooc123
发帖于5年前 5回/311阅
共有5个答案 最后回答: 5年前

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

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://****

--- 共有 1 条评论 ---
cooc123怎样让http 不抛异常 还看可以读流 5年前 回复

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

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

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 


妹子查看api吧

try{

读 http.getInputStream();

}catch(Exception ex){

http.getErrorStream();

}

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

--- 共有 1 条评论 ---
cooc123明白了 5年前 回复
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的话,你会被整死的。

顶部