解析 HTTP(HttpURLConnection getResponseCode)

HTTP 请求

客户端通过发送 HTTP 请求向服务器请求对资源的访问。HTTP 请求由三部分组成,分别是:请求行消息报头请求正文

  1. 请求行

    • 请求行以一个方法符号开头,后面跟着请求 URI 和协议的版本,以 CRLF (表示回车换行)作为结尾。请求行以空格分隔,除了作为结尾的 CRLF 外,不允许出现单独的 CR 或 LF 字符。格式如下:

    • Method Request-URI HTTP-Version CRLF

    • 例如:GET /form.html HTTP/1.1 (CRLF)

方法

在 HTTP 协议中,HTTP 请求可以使用多种请求方法,这些方法指明了要以何种方式来访问 Request-URI 所标识的资源。

HTTP1.1支持的请求方法


  1. GET

GET Request-URI HTTP/1.1

  • POST
POST /reg.jsp HTTP/1.1 (CRLF)
ACCEPT: image/gif, image/x-xbit, ... (CRLF)
HOST: www.winsunlight.com (CRLF)
Content-Length: 22 (CRLF)
Connection: Keep-Alive (CRLF)
Cache-Control: no-cache (CRLF)
(CRLF)
user = zhangsan&pwd=123456
ps: GET和POST必须大写 

2. 消息报头
3. 请求正文

消息报头和请求正文之间是一个空行(只有一个 CRLF
的行),这个空行表示消息报头已经结束,接下来的是请求正文。请求正文中可以包含提交的数据,上例中,user =
zhangsan&pwd=123456 就是请求正文部分。

HTTP响应

在接收和解释请求消息后,服务器会返回一个 HTTP 响应消息。与 HTTP 请求类似,HTTP
响应也是由三个部分组成,分别是:状态行、消息报头和响应正文。

状态行

状态行由协议版本、数字形式的状态代码,及相应的状态描述组成,各元素之间以空格分隔,除了结尾的 CRLF(回车换行)字符序列外,不允许出现 CR 或 LF 字符。格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF

HTTP-Version 表示服务器 HTTP 协议的版本,Status-Code 表示服务器发回的响应代码,Reason-Phrase 表示状态代码的文本描述,CRLF 表示回车换行。例如:

HTTP/1.1 200 OK (CRLF)

状态代码与状态描述

状态代码由 3 位数字组成, 表示请求是否被理解或被满足,状态描述给出了关于状态码的简短的文字描述。状态码的第一个数字定义了响应类别,后面两位数字没有具体分类。第一个数字有 5 种取值,如下所示。
  • 1xx:指示信息——表示请求已经接受,继续处理
  • 2xx:成功——表示请求已经被成功接收、理解、接受。
  • 3xx:重定向——要完成请求必须进行更进一步的操作
  • 4xx:客户端错误——请求有语法错误或请求无法实现
  • 5xx:服务器端错误——服务器未能实现合法的请求。
    具体参见文档

java代码如下

    /**
     * 获取访问的状态码
     * @param request
     * @return
     * @throws Exception
     */
    public static int getResponseCode(String request) throws Exception {
        URL url = new URL(request);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        return conn.getResponseCode();

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值