我遇到了这个问题,我有一个聊天服务器需要与aws中托管的lambda服务进行通信,但是云端会抛出以下错误。
<Screen_Manager>:
id: screen_manager
Login:
Main:
<Login>:
name: 'login'
Button:
text: 'Go to Main'
on_press: root.manager.current = 'main'
<Main>:
name: 'main'
Button:
text: 'Go to Login'
on_press: root.manager.current = 'login'
这是我的申请中的请求。
BODY: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Bad request.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: h5kPdVnMXwh-P7e7mxQ5LL1gj9fAupp_MNAPxmxufI74W4WhE_MByw==
</PRE>
<ADDRESS>
</ADDRESS>
</BODY></HTML>
聊天服务器.js托管在ec2中。这是什么问题?
答案 0 :(得分:3)
我以前见过这个问题。它是由于以下原因而发生的,
答案 1 :(得分:3)
require('http');
这是一个HTTP客户端 - 而不是HTTPS客户端。
指定端口443不会产生HTTPS请求,即使端口443是HTTPS的已分配端口也是如此。它只针对目标端口443发出普通的HTTP请求。
这不是一件有效的事情,因此CloudFront返回Bad Request
错误。
你几乎肯定想要require('https');
。
答案 2 :(得分:1)
我正面临着同样的错误,我通过从邮递员请求中删除尸体来解决了这个问题。
答案 3 :(得分:0)
就我而言,在调用CloudFront时,我有一个客户端负载均衡器。结果,我通过IP地址而不是hostName调用CF。 我与Amazon AWS支持团队联系过,在这种情况下,CF拒绝了该请求并返回“ 403错误,该请求可以得到满足”。
答案 4 :(得分:0)
我遇到了同样的问题,this thread为我工作。
此错误消息:
“无法满足该请求。错误的请求。”
来自客户端,并且由于以下原因之一而可能发生错误:
(在我的情况下,原因是#2)。
答案 5 :(得分:0)
对我来说,问题是,我重新启动了EC2,从而更改了实例ID,但我的云前源仍指向先前的ID。因此,一旦我更改它,它就可以正常工作。