我一般都很擅长设置Web服务器.我在Windows 8上安装了IIS 8,我正在尝试在本地设置一个小站点,同时进行一些开发.在IIS中,我选择添加站点,给出一个名称,指向我有一个index.html文件的位置(我尝试了不同的位置,最新的c:\ inetpub\wwwroot\test -folder),否则使用所有默认值设置.但是,当我尝试浏览localhost时,我得到了
http错误503服务不可用.
我已验证池已启动,并且我已在目标文件夹上提供IIS_IUSRS完全控制
我一直在搜索,但没有找到解决我问题的任何内容,而且在EventLog或C:\ Windows\System32\LogFiles\HTTPERR文件夹中没有任何帮助
谁能告诉我什么是错的?
我使用Spring MVC作为一个简单的JSON API,@ResponseBody基于以下方法.(我已经有一个直接生成JSON的服务层.)
@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@ResponseBody
public String match(@PathVariable String matchId) {
String json = matchService.getMatchJson(matchId);
if (json == null) {
// TODO: how to respond with e.g. 400 "bad request"?
}
return json;
}
Run Code Online (Sandbox Code Playgroud)
问题是,在给定的场景中,用HTTP 400错误响应的最简单,最干净的方法是什么?
我确实遇到过这样的方法:
return new ResponseEntity(HttpStatus.BAD_REQUEST);
Run Code Online (Sandbox Code Playgroud)
...但我不能在这里使用它,因为我的方法的返回类型是String,而不是ResponseEntity.
我有一个暴露给iPhone和Android客户端的REST服务.目前我遵循HTTP代码200,400,401,403,404,409,500等.
我的问题是建议放置错误的原因/描述/原因的地方在哪里?REST API是否更有意义在标题中始终具有自定义Reason?
< HTTP/1.1 400 Bad Request - Missing Required Parameters.
< Date: Thu, 20 Dec 2012 01:09:06 GMT
< Server: Apache/2.2.22 (Ubuntu)
< Connection: close
< Transfer-Encoding: chunked
Run Code Online (Sandbox Code Playgroud)
或者通过JSON将它放在Response Body中更好?
< HTTP/1.1 400 Bad Request
< Date: Thu, 20 Dec 2012 01:09:06 GMT
< Server: Apache/2.2.22 (Ubuntu)
< Connection: close
< Transfer-Encoding: chunked
< Content-Type: application/json
{ "error" : "Missing Required Parameters" }
Run Code Online (Sandbox Code Playgroud) 我收到"HTTP错误500:内部服务器错误"响应,但我仍然想读取错误HTML中的数据.
使用Python 2.6,我通常使用以下方法获取页面:
import urllib2
url = "http://google.com"
data = urllib2.urlopen(url)
data = data.read()
Run Code Online (Sandbox Code Playgroud)
当尝试在失败的URL上使用它时,我得到异常urllib2.HTTPError:
urllib2.HTTPError: HTTP Error 500: Internal Server Error
Run Code Online (Sandbox Code Playgroud)
如何urllib2在返回内部服务器错误时获取此类错误页面(有或没有)?
请注意,对于Python 3,相应的例外是urllib.error.HTTPError.
使用python flask服务器,我希望能够使用abort命令抛出http错误响应,并在正文中使用自定义响应字符串和自定义消息
@app.errorhandler(400)
def custom400(error):
response = jsonify({'message': error.message})
response.status_code = 404
response.status = 'error.Bad Request'
return response
abort(400,'{"message":"custom error message to appear in body"}')
Run Code Online (Sandbox Code Playgroud)
但是error.message变量是一个空字符串.我似乎无法找到有关如何使用自定义错误处理程序访问中止函数的第二个变量的文档
有没有办法添加一个全局的catch-all错误处理程序,我可以在其中更改对通用JSON响应的响应?
我无法使用该got_request_exception信号,因为不允许修改响应(http://flask.pocoo.org/docs/0.10/signals/).
相反,所有信号处理程序都以未定义的顺序执行,不会修改任何数据.
我宁愿不包装app.handle_exception函数,因为感觉像内部API.我想我的事情是这样的:
@app.errorhandler()
def handle_global_error(e):
return "Global error"
Run Code Online (Sandbox Code Playgroud)
请注意,errorhandler它不带任何参数,这意味着它将捕获所有没有附加特定错误处理程序的异常/状态代码.我知道我可以使用errorhandler(500)或errorhandler(Exception)捕获异常,但如果我这样做abort(409),它仍将返回HTML响应.
使用file_get_contents作为自定义SOAP实现的一部分来应用SOAP调用(我们尝试的所有库都不会正确地使用SOAP 1.2进行基于SSL +证书的身份验证).然而,困难且几乎没有文档记录的API通常返回500.响应正文中有错误详细信息,但file_get_contents似乎不允许访问它.fopen似乎也有同样的问题.
做什么?
由于大量使用流上下文来使身份验证正常工作,因此不希望转到cURL.
我试图在Rails中调用403 HTTP错误的自定义实例,但我似乎无法弄清楚如何执行此操作...
我有几个用户身份验证角色,基本上如果角色试图浏览到无权访问的区域我想显示403而不是仅重定向用户.
我该怎么做呢?
我希望将所有401错误重定向到自定义错误页面.我最初在web.config中设置了以下条目.
<customErrors defaultRedirect="ErrorPage.aspx" mode="On">
<error statusCode="401" redirect="~/Views/Shared/AccessDenied.aspx" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
使用IIS Express时,我收到了IIS Express 401错误页面.
如果我不使用IIS Express,则返回空白页面.使用Google Chrome的"网络"标签检查响应,我看到当页面为空白时,标题中会返回401状态
到目前为止我尝试使用的是这个SO答案中的建议,因为我使用的是IIS Express,但无济于事.我尝试过使用组合<custom errors>而<httpErrors>没有运气 - 标准错误或空白页仍然显示.
该httpErrors部分看起来像这样的基础上,瞬间链接从上面的SO问题(我还发现了另一种非常有前途的答案却没有运气-空白响应)
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough" >
<remove statusCode="401" />
<error statusCode="401" path="/Views/Shared/AccessDenied.htm" />
</httpErrors>
<!--
<httpErrors errorMode="Custom"
existingResponse="PassThrough"
defaultResponseMode="ExecuteURL">
<remove statusCode="401" />
<error statusCode="401" path="~/Views/Shared/AccessDenied.htm"
responseMode="File" />
</httpErrors>
-->
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
我甚至已经修改了applicationhost.config文件,并修改<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">,以<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated">基于从信息iis.net.在我努力的过程中,我也设法偶然发现了另一个SO问题中描述的这个错误.
如何在Asp.Net Mvc …
error-handling http-error custom-error-pages iis-express asp.net-mvc-3
我正在使用Instagram feed API在我的网站上显示我的Instagram帖子.但是某些视频网址显示" 网址签名已过期 ".
对我有什么解决方案?
http http-error http-status-code-403 instagram instagram-api
http-error ×10
http ×3
python ×3
flask ×2
asp.net ×1
iis ×1
iis-express ×1
instagram ×1
java ×1
php ×1
rest ×1
spring ×1
spring-mvc ×1
urllib ×1
urllib2 ×1