标签: http-status-codes

python请求模块:head和get请求方法有什么区别

当我使用请求模块检查页面是否可用时。例如:

>>> import requests
>>> url = "http://www.motie.com/book/29675"
>>> res = requests.head(url)
>>> print res.status_code
404
>>> res = requests.get(url)
>>> print res.status_code
200
Run Code Online (Sandbox Code Playgroud)

我分别得到了 HEAD 和 GET 的 status_code 404 和 200。我不知道为什么。此外,我怎么能找出原因。非常感谢。

python get http-status-codes head python-requests

4
推荐指数
1
解决办法
960
查看次数

非 2xx 状态代码响应是否应包含 CORS 特定标头

是否应非2XX状态代码响应还包括CORS特定的头文件,例如Access-Control-Allow-OriginAccess-Control-Allow-MethodsAccess-Control-Max-Age?这对客户还有意义吗?

例如:

?  api git:(master) ? curl -i http://127.0.0.1:9000/dfas
HTTP/1.1 404 Not Found
Connection: close
Server: Node.js v6.3.1
Cache-Control: no-cache, no-store
Access-Control-Max-Age: 300
Access-Control-Allow-Origin: *
Content-Type: application/json
Content-Length: 60
Date: Thu, 11 Aug 2016 22:58:33 GMT

{"code":"ResourceNotFound","message":"/dfas does not exist"}
Run Code Online (Sandbox Code Playgroud)

http access-control http-status-codes cors

4
推荐指数
1
解决办法
271
查看次数

通过 http 传输大型二进制文件时的 HTTP 错误代码?

我有一个 go 服务器正在读取并返回捆绑到 tar 中的大型数据文件。我已经测试过这可以工作并将 tar 分成几部分,并且当所有数据加载时,一切都很好。

问题是,可能会出现意外错误,导致下载中断。我当前编写了一个 HTTP 错误代码和一条错误消息,但错误消息只是放在流/文件的末尾。有没有好的方法来传达导出中途失败的情况?是否可以使用 HTTP 状态代码并提供错误消息来做到这一点?

我正在使用以下curl命令:

curl --insecure https://127.0.0.1/api/export/030e28f3-4ab6-446a-852e-fda0a497ffe2 -o "test.tar"
Run Code Online (Sandbox Code Playgroud)

我是否也必须更改curl命令来检测错误?

streaming curl http http-status-codes

4
推荐指数
1
解决办法
2936
查看次数

REST API 服务为过期实体返回的适当 HTTP 状态代码是什么?

假设我们有一家在线商店,并收到更新某些订单的有效请求。

请求本身是有效的,但是假设订单有过期时间,并且已经过期,因此该请求实际上无法处理。

我怀疑这是否是一种验证错误。因为,正如我上面所说,请求本身是有效的;并且请求发送者可能不知道订单已经过期。

在这种情况下,REST API 服务返回的适当 HTTP 状态代码是什么?

警告:由于产品的一般要求,应该是一些4XX错误代码!

UPD:更多信息:这个假定的“订单”仍然存在,甚至已经过期。可以取回它,但不能再操作它。这就是代码404(例如)不合适的原因。

rest http-status-codes content-expiration

4
推荐指数
1
解决办法
2078
查看次数

如何使用Guzzle检索HTTP状态代码?

Guzzle / Http的新手。

我有一个API rest url登录名,如果未授权,则使用401代码回答;如果缺少值,则使用400回答。

我将获得http状态代码以检查是否存在某些问题,但不能仅包含代码(整数或字符串)。

这是我的代码,我确实在这里使用了说明(http://docs.guzzlephp.org/en/stable/quickstart.html#exceptions

namespace controllers;
use GuzzleHttp\Psr7;
use GuzzleHttp\Exception\ClientException;

$client = new \GuzzleHttp\Client();
$url = $this->getBaseDomain().'/api/v1/login';

try {

    $res = $client->request('POST', $url, [
        'form_params' => [
            'username' => 'abc',
            'password' => '123'                     
        ]
    ]);

} catch (ClientException $e) {

    //echo Psr7\str($e->getRequest());
    echo Psr7\str($e->getResponse());

}
Run Code Online (Sandbox Code Playgroud)

http-status-codes guzzle guzzle6

4
推荐指数
1
解决办法
5152
查看次数

更改 chrome 中给定 url 的 http 响应状态代码

我想从后端模拟假 404 状态代码,以查看我的网站的行为方式。

我不想在我想使用一些工具的代码中模拟假响应状态。

因为有时我想在版本 x 的产品上测试它,我不想浪费时间下载此代码并检查它是否正常工作。

只需简单地模拟一些测试值的响应标头状态代码,例如 404 以进行快速检查。

我尝试使用像 Requestly 这样的软 - chrome 扩展。

并将其配置为: 在此处输入图片说明

修改 google.com 站点的标头状态放置值 404 的响应。

但是当我打开 google.com 网站时,我的状态为 200: 在此处输入图片说明

您知道如何更改给定请求的状态代码吗?也许通过使用不同的软?

google-chrome request http-status-codes

4
推荐指数
2
解决办法
6087
查看次数

Django REST Framework ValidationError 总是返回 400

我试图强制ValidationError返回与 400 不同的状态代码。这就是我所做的:

class MyValidationError(ValidationError):
    status_code = HTTP_403_FORBIDDEN
Run Code Online (Sandbox Code Playgroud)

然后在序列化程序中:

def validate_field(self, value):
    raise MyValidationError
Run Code Online (Sandbox Code Playgroud)

为什么我在这里得到 400 而不是 403?有趣的是,如果我使用PermissionDenied自定义状态代码(我尝试过 204)而不是ValidationError,它会按预期工作。

serialization http-status-codes django-rest-framework

4
推荐指数
2
解决办法
4080
查看次数

HttpStatusCodeResult 消息编码

我需要返回一个带有描述的 HttpStatusCodeResult 对象,其中包含特殊(变音符号)字符。我不知道如何设置正确的编码。

\n\n
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Za\xc5\xbc\xc3\xb3\xc5\x82\xc4\x87 g\xc4\x99si\xc4\x85 ja\xc5\xba\xc5\x84.");\n
Run Code Online (Sandbox Code Playgroud)\n\n

应该返回:

\n\n
\n

Za\xc5\xbc\xc3\xb3\xc5\x82\xc4\x87 g\xc4\x99si\xc4\x85 ja\xc5\xba\xc5\x84。

\n
\n\n

但我得到:

\n\n
\n

Za\xc2\xbf\xc3\xb3\xc2\xb3\xc3\xa6 g\xc3\xaasi\xc2\xb9 ja\xc3\xb1。

\n
\n\n

我尝试过Response.Charset = System.Text.Encoding.UTF8.WebName;等等,但仍然一无所获。

\n

asp.net-mvc character-encoding http-status-codes

4
推荐指数
1
解决办法
1861
查看次数

即使请求失败,HTTP 响应始终返回响应代码 200,并且返回状态代码是 REST 的一部分

我最近加入了一个新项目。在这个项目中,服务中的所有 API 总是返回状态代码 200。即使响应应该是 400 或 404,API 也会返回状态代码 200。

我问了 API 不返回其他响应代码的原因,程序员告诉我他们不使用响应代码。他们将信息放入体内。

例如,缺少一些必填字段,它们返回响应状态代码 200,但正文返回这样

{"result" : "fail"}
Run Code Online (Sandbox Code Playgroud)

如果未经授权的用户尝试访问,状态码为 200,则正文返回如下

{"result" : "unautherized"}
Run Code Online (Sandbox Code Playgroud)

我之前所做的非常不同,我总是按案例指定状态代码并尝试返回合适的状态代码和消息。我认为这是 HTTP 协议的一部分。但是,他们告诉我,像 400、404、300 这样的指定状态代码是 RESTful API 的一部分,并且始终返回 200 是正确的状态代码,因为服务器响应并且它处于活动状态。APIs,除了500,总是要返回200。因为当服务器挂掉时,它不能返回任何东西。

所以这些是问题。

  1. 服务器应该总是返回状态代码 200 除非服务器死机?
  2. 指定各种状态代码是 REST API 的一部分吗?
  3. 不使用状态码很常见吗?

rest http conventions httpresponse http-status-codes

4
推荐指数
2
解决办法
7521
查看次数

未找到资源的正确 HTTP 状态代码

例如,我需要找到地址为api/user/1 的User 资源。在本例中,我正在寻找 ID 为 1 的确切资源,如果资源不存在,则应返回 404。

但是,如果我想找到确切的最新用户资源但它不存在怎么办?例如,使用地址api/latest-user。现在应该返回 404 还是返回空结果的 200?

让我困惑的是,在这两种情况下,我都在寻找某个资源,如果在第一种情况下是通过 ID 完成的,那么在第二种情况下是按顺序完成的。

如何让客户更容易理解并且不被误解?什么对客户来说更容易理解?

api rest http http-status-codes http-status-code-404

4
推荐指数
1
解决办法
1619
查看次数