标签: http-error

API开发:何时返回BAD REQUEST HTTP状态代码(REST)

我们正在编写REST服务,并且当有人请求具有不存在的父ID的资源时,如何做有争议.

示例:您要求提供与公司关联的人员列表,因此您GET使用ID 1,但该公司ID不存在.

我认为REST的定义说我们会简单地返回一个空列表(导致a HTTP 204 (No Content)),因为根据规范,HTTP Bad Request仅用于格式错误的语法:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

由于语法格式错误,服务器无法理解请求.客户端不应该在没有修改的情况下重复请求.

我认为更清楚的是没有要解释的错误,您请求的资源不存在.

关于最佳实践的想法?

这里有一个SO讨论:HTTP 400(错误的请求)用于逻辑错误,而不是格式错误的请求语法,虽然它有点抽象,如果我发布这个,或者只是使用那个问题,我就会被撕裂.

rest jax-rs jersey http-error

3
推荐指数
1
解决办法
1404
查看次数

如何使用Python urlopen设置cookie?

我试图使用Python urlopen获取一个html站点.
我收到此错误:

HTTPError:HTTP错误302:HTTP服务器返回了重定向错误,导致无限循环

代码:

from urllib2 import Request
request = Request(url)
response = urlopen(request)
Run Code Online (Sandbox Code Playgroud)

我知道服务器重定向到另一个URL并且它正在寻找cookie.
如何设置它正在寻找的cookie,以便我可以阅读html?

python cookies redirect http-error urlopen

3
推荐指数
1
解决办法
7102
查看次数

HTTP 错误 404.19 - 在 IIS 8.5 中找不到

我有一个网站,可以在IIS 7.5. 但具有相同配置的同一站点在IIS 8.5. 我在 URL 中传递一个系统字符串变量,它显示了我

HTTP Error 404.19 - Not Found error.
Run Code Online (Sandbox Code Playgroud)

所以我无法抓住确切的问题。除 IIS 版本外,两个 IIS 的所有内容均相同。所以我需要你对这个问题的想法。这样我也可以研究一下这个。不幸的是我是.net新手,所以需要基本答案。谢谢。

如果我传入"&system=value1"URL,IIS8.5那么它就会停止工作,即使这样也不会为此生成任何日志。所以请帮助我。

我刚刚知道,如果我在查询字符串中使用“sys”单词,则会出现错误。现在如何避免这个问题呢?

http-error

3
推荐指数
1
解决办法
3294
查看次数

Microsoft Live授权GET请求返回Net :: HTTPBadRequest 400

我正在关注Microsoft live connect API文档以授权我的用户访问onedrive.我正在尝试建立代码流认证.我得到了AUTHORIZATION_CODE描述.现在,我正试图在这方面得到ACCESS_TOKEN帮助:

Microsoft live connect API文档中,它表示ACCESS_TOKEN我们需要提供诸如的请求,

POST https://login.live.com/oauth20_token.srf

Content-type: application/x-www-form-urlencoded

client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&client_secret=CLIENT_SECRET&
          code=AUTHORIZATION_CODE&grant_type=authorization_code      
Run Code Online (Sandbox Code Playgroud)

我使用ruby提供了相同的请求并收到错误:

#<Net::HTTPBadRequest 400 Bad Request readbody=true>
Run Code Online (Sandbox Code Playgroud)

然后我在微软论坛上发现,请求是GET而不是POST.所以,我在ruby中创建了一个GET请求如下:

access_code =params["code"]
uri = URI.parse("https://login.live.com/oauth20_token.srf")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if uri.scheme == 'https'
http.verify_mode = OpenSSL::SSL::VERIFY_NONE  
http.read_timeout = 500
req = Net::HTTP::Get.new("https://login.live.com/oauth20_token.srf", 
                         initheader = {'Content-Type' =>'application/x-www-form-urlencoded'})        
data = URI.encode_www_form({'client_id'=> 'my_client_id' , 
                         'redirect_uri' =>'my_redirect_url', 
                         'client_secret' =>'my_client_secret', 
                         'code'=>access_code, 'grant_type' =>'authorization_code'})
req.body = data
res = http.start …
Run Code Online (Sandbox Code Playgroud)

ruby post get http-error

3
推荐指数
1
解决办法
4025
查看次数

无法使httpErrors工作

我已将以下内容添加到配置文件中.

<system.webServer>
  ...
  <httpErrors errorMode="Custom"
              existingResponse="Replace" 
              defaultResponseMode="ExecuteURL">
    <clear/>
    <error statusCode="404"
           responseMode="ExecuteURL"
           path="http://google.se" />
  </httpErrors>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

但是,似乎我仍然得到带有黄色背景和堆栈跟踪的默认页面.我已经尝试注释掉过滤器以进行错误处理并在system.web中添加/删除自定义错误.(我正在尝试这篇伟大文章中建议的httpErrors方法.)

我错过了什么?我还能做些什么来解决问题呢?

c# error-handling asp.net-mvc web-config http-error

3
推荐指数
1
解决办法
1864
查看次数

无法从 Cloudformation 中的 EC2 实例访问 S3 -- 调用 HeadObject 操作时发生客户端错误 (301):永久移动

我正在尝试通过实例的 userdata 属性将文件从 S3 存储桶下载到实例。但是,我收到错误:

调用 HeadObject 操作时发生客户端错误 (301):永久移动。

我使用 IAM 角色、托管策略和实例配置文件来为实例提供对 s3 存储桶的访问权限:

    "Role": {
        "Type": "AWS::IAM::Role",
        "Properties": {
            "AssumeRolePolicyDocument": {
                "Statement": [
                    {
                        "Effect": "Allow",
                        "Principal": {
                            "Service": [
                                "ec2.amazonaws.com",
                                "s3.amazonaws.com"
                            ]
                        },
                        "Action": [
                            "sts:AssumeRole"
                        ]
                    }
                ]
            },
            "Path": "/",
            "ManagedPolicyArns": [
                {
                    "Ref": "ManagedPolicy"
                }
            ]
        },
        "Metadata": {
            "AWS::CloudFormation::Designer": {
                "id": "069d4411-2718-400f-98dd-529bb95fd531"
            }
        }
    },
    "RolePolicy": {
        "Type": "AWS::IAM::Policy",
        "Properties": {
            "PolicyName": "S3Download",
            "PolicyDocument": {
                "Statement": [
                    {
                        "Action": [
                            "s3:*"
                        ],
                        "Effect": "Allow", …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-ec2 http-error aws-cloudformation amazon-iam

3
推荐指数
1
解决办法
2484
查看次数

416 (Requested Range Not Satisfiable) 使用 blob 作为视频“src”时的 HTTP 错误

我用 blob 创建了一个对象 url

let src = URL.createObjectURL(blob)
Run Code Online (Sandbox Code Playgroud)

并将其用作我的视频src属性,但会导致此错误:

GET blob:http://localhost:4200/ab3cc5aa-19cc-41f1-a4b7-55e1fa3ce85c 416 (Requested Range Not Satisfiable)
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?


虽然我认为我的问题很普遍,但我使用的是 angular 2,所以准确地说,我的代码如下所示:

let src = this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(blob));
Run Code Online (Sandbox Code Playgroud)

和模板

<video *ngFor="let videoUrl of _videos" [src]="videoUrl"></video>
Run Code Online (Sandbox Code Playgroud)

另外,我使用 angular-cli 作为我的服务器,由于这看起来像是服务器错误(?),了解它可能很有用。

blob http-error html5-video angular-cli angular

3
推荐指数
1
解决办法
4082
查看次数

如何在 Python 应用程序中处理 HTTP 状态代码?

我正在尝试标准化我对从各种 API 返回的 HTTP 状态代码的处理,以减少我跨文件复制的代码量。

对于我当前的应用程序,我有一组文件,每个文件都包含一个类,这些类都从一个主类继承。我正在使用 Python requests 模块来使用 API。

到目前为止,我已经在每个函数中编写了自定义状态代码处理以继续使用 200,记录我使用 400 发送的请求,记录 404 的 url,重试 5xx,但继续复制此代码很麻烦函数和类。

我正在考虑以下内容(请注意,我在这里简化了代码以仅使用 GET,但实际上,我主要是发布并接收 json 响应):

apiMaster.py

class ApiMaster(object):
    def _handle_response(self, resp):
        if resp.status_code == 200: # or requests.code.ok
            return resp.json()
        if resp.status_code == 400:
            err_msg = "400 Error - Bad Request\n" + resp.request.url + "\n" + resp.request.data
            raise HTTPError(err_msg)
        ...
Run Code Online (Sandbox Code Playgroud)

apiA.py

class Api_A(ApiMaster):
    def query_json_a(self):
        resp = requests.get(self.url + '/a.json')
        try:
            resp_json = self._handle_response(resp)
        except HTTPError as e:
            logger.error(str(e))
Run Code Online (Sandbox Code Playgroud)

apiB.py

class Api_B(ApiMaster):
    def …
Run Code Online (Sandbox Code Playgroud)

python error-handling http http-error python-requests

3
推荐指数
1
解决办法
5864
查看次数

Vuejs Axios POST 请求从 Laravel 后端获取 HTTP422 错误

嗨,我在前端使用 Vuejs,在后端使用 Laravel。Laravel 的作用只是处理 API。前端和后端是分开的,即我没有在 Laravel 的resource/js文件夹中使用 Vuejs 。

现在我从 Vuejs 向 Laravel 发送 Axios POST 请求。所有表单输入值都使用 HTML5required属性进行了预验证。当我console.log请求数据时,它会显示所有已填写的字段。

在 Vue 文件中:

const data = {
   name: this.name,
   gender: this.gender,
   mobile_no: this.mobile_no,
   image: this.userImage
};
console.log("Request data . . . .", data);

const response = await this.axios
   .post(`${this.AppURL}/admin/user/create`, data, {
        headers: {
          "Content-Type": "multipart/form-data"
        }
   })
   .then(() => {
        console.log("Success. . . . ")
           alert("Successfully Driver Added");
        })
   .catch(error => console.log(error));
Run Code Online (Sandbox Code Playgroud)

而在 Laravel 中,请求会通过一些验证。这是一个简单的验证来检查是否所有字段都已填写。我也使用JWTAuth …

post http-error laravel vue.js axios

3
推荐指数
1
解决办法
6766
查看次数

Angular - 如何在服务中模拟 HttpError 响应

如何在 Angular 服务中模拟 HTTP 错误响应?我经常需要处理不同的 HTTP 错误代码,有时我需要实现解决方案,但后端还没有准备好。如何从后端模拟错误?示例代码

  public getData(): Observable<Response> {
    return this.httpClient.get<Response>(`${this.endpoint}`);
  }
Run Code Online (Sandbox Code Playgroud)

error-handling mocking http-error typescript angular

3
推荐指数
1
解决办法
1414
查看次数