我在Ruby on Rails 3中有一个控制器方法,它接受application/JSON作为内容类型.这一切都按预期工作,但我实际上不希望rails自动解析POST请求正文中的JSON.此方法充当网关,只是将信息传递到队列中,并且可能非常大.我不想浪费时间处理数据到@_params,因为它是不必要的.
我相信我可以通过将请求标头中的内容类型设置为其他内容来解决这个问题,但我希望对于HTTP请求在语义上是正确的.
如何禁用此功能?
编辑:更具体地说,如何才能为这一条路线编辑此功能?
我正在研究2.6中的python项目,它也有未来支持python 3的工作.特别是我正在研究digest-md5算法.
在没有运行此导入的python 2.6中:
from __future__ import unicode_literals
Run Code Online (Sandbox Code Playgroud)
我能写一段这样的代码:
a1 = hashlib.md5("%s:%s:%s" % (self.username, self.domain, self.password)).digest()
a1 = "%s:%s:%s" %(a1, challenge["nonce"], cnonce )
Run Code Online (Sandbox Code Playgroud)
没有任何问题,我的身份验证工作正常.当我尝试导入unicode_literals的同一行代码时,我得到一个异常:
UnicodeDecodeError:'utf8'编解码器无法解码位置0的字节0xa8:意外的代码字节
现在我对python相对较新,所以我有点陷入困境.如果我将格式化字符串中的%s替换为%r我能够连接字符串,但身份验证不起作用.我读过的digest-md5规范说16个八位字节的二进制摘要必须附加到这些其他字符串.
有什么想法吗?
我在独角兽面前使用Nginx.当应用程序处于高负载且所有unicorn工作人员都忙时,nginx将返回502响应,表示网关配置错误.我对这种行为没问题,但在这种情况下,我希望nginx返回503响应代码(服务器忙,稍后再试),这是一个更合适的响应.
我看到了这个答案: 是否可以更改在nginx中关闭proxy_pass网关时返回的HTTP状态代码?
其中描述了如何重写从上游代理返回的一些状态代码:
location / {
proxy_pass http://backend;
proxy_intercept_errors on;
error_page 502 503 504 =503 @proxyisdown; # always reply with 503
}
location @proxyisdown {
add_header Retry-After 500;
index my_pretty_error_page.html;
}
Run Code Online (Sandbox Code Playgroud)
但是这有两个问题:
有没有什么办法可以控制nginx在这种情况下返回的状态码,这样它就是503而不是502?