我们正在编写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(错误的请求)用于逻辑错误,而不是格式错误的请求语法,虽然它有点抽象,如果我发布这个,或者只是使用那个问题,我就会被撕裂.
我试图使用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?
我有一个网站,可以在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”单词,则会出现错误。现在如何避免这个问题呢?
我正在关注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) 我已将以下内容添加到配置文件中.
<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方法.)
我错过了什么?我还能做些什么来解决问题呢?
我正在尝试通过实例的 userdata 属性将文件从 S3 存储桶下载到实例。但是,我收到错误:
调用 HeadObject 操作时发生客户端错误 (301):永久移动。
我使用 IAM 角色、托管策略和实例配置文件来为实例提供对 s3 存储桶的访问权限:
Run Code Online (Sandbox Code Playgroud)"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", …
amazon-s3 amazon-ec2 http-error aws-cloudformation amazon-iam
我用 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 作为我的服务器,由于这看起来像是服务器错误(?),了解它可能很有用。
我正在尝试标准化我对从各种 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) 嗨,我在前端使用 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 …
如何在 Angular 服务中模拟 HTTP 错误响应?我经常需要处理不同的 HTTP 错误代码,有时我需要实现解决方案,但后端还没有准备好。如何从后端模拟错误?示例代码
public getData(): Observable<Response> {
return this.httpClient.get<Response>(`${this.endpoint}`);
}
Run Code Online (Sandbox Code Playgroud) http-error ×10
angular ×2
post ×2
python ×2
amazon-ec2 ×1
amazon-iam ×1
amazon-s3 ×1
angular-cli ×1
asp.net-mvc ×1
axios ×1
blob ×1
c# ×1
cookies ×1
get ×1
html5-video ×1
http ×1
jax-rs ×1
jersey ×1
laravel ×1
mocking ×1
redirect ×1
rest ×1
ruby ×1
typescript ×1
urlopen ×1
vue.js ×1
web-config ×1