【问题标题】:Android: How get the status-code of an HttpClient requestAndroid:如何获取 HttpClient 请求的状态码
【发布时间】:2011-02-05 06:38:27
【问题描述】:

我要下载一个文件,需要检查响应状态码(即HTTP /1.1 200 OK)。 这是我的代码片段:

HttpGet httpRequest = new HttpGet(myUri);
HttpEntity httpEntity = null;
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httpRequest);
...

如何获取响应的状态码?

【问题讨论】:

    标签: android httpclient httprequest http-status-codes


    【解决方案1】:

    这将返回 int 值:

    response.getStatusLine().getStatusCode()
    

    【讨论】:

    • 既然 HttpStatus 是一个不推荐使用的类,还有更好的类可以使用吗?
    • @AkashRamani - 是的,只需使用 HttpUrlConnection 方法:.getResponseCode()
    • @NikitaKurtin 确定返回一个整数,但你怎么知道实际响应代码的 Http 响应状态是什么?你怎么知道它是否成功?我不想说if(getResponseCode()==200)。我宁愿说if(getResponseCode()==HttpStatus.RESPONSE_OK) 或类似的东西。
    • @AkashRamani,是的,它在类中有 int 常量。例如 HttpURLConnection.HTTP_OK (200 -> http ok status) HttpURLConnection.HTTP_NOT_FOUND (404 -> not found) 等等。您可以在它的类参考中找到可用常量的完整列表:developer.android.com/reference/java/net/…
    【解决方案2】:
    if (response.getStatusLine().getStatusCode()== HttpsURLConnection.HTTP_OK){
    ...
    }
    

    【讨论】:

      【解决方案3】:

      使用响应的code()函数获取其HTTP代码:

      val code = response.code()
      

      【讨论】:

        猜你喜欢
        • 2019-07-22
        • 1970-01-01
        • 1970-01-01
        • 2017-09-06
        • 1970-01-01
        • 2021-08-28
        • 1970-01-01
        • 2014-07-17
        • 1970-01-01
        相关资源
        最近更新 更多