【问题标题】:AWS ECS Service HTTP request is not redirected?AWS ECS 服务 HTTP 请求未重定向?
【发布时间】:2020-09-06 18:55:45
【问题描述】:

所以,我有一个服务部署到 ECS,我正在尝试使用以下代码向该服务发送 HTTP 请求:

connection = http.client.HTTPConnection(url)

rawRequest={
    "BotAlias": "botName",
    "UserID": "user",
    "AudioFile": base64.b64encode(audio).decode("utf-8")
}

data = json.dumps(rawRequest)

connection.request("POST", "/service-path/protobuf-call",
                   data, {"Content-type": "application/json"})

response = connection.getresponse()
print(response.read())


return json.loads(response.read().decode()) 

我的 ALB 的 80 端口的规则是重定向到端口 443,状态码为 HTTP_301。 对于端口 443,我有一个默认规则,可以根据请求的路径重定向到每个服务的目标组。但是,当我实际运行该服务时,我一直得到 301 作为响应,而不是我正在寻找的 lex bot 响应。有什么想法吗?提前致谢!

【问题讨论】:

  • 这个问题真的与 AWS 负载均衡器或 Lex 无关。您的 Python 代码只是获取它收到的第一个响应,而不是查看 301 重定向响应并向重定向位置发出另一个响应。如果您只是将应用程序配置为始终在端口 443 上使用 HTTPS,显然会更有效(网络流量更少),但如果您希望代码处理重定向,则应搜索“Python Follow Redirects”。

标签: python http http-redirect


【解决方案1】:

我通过使用 HTTPS 而不是 HTTP 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2021-10-01
    • 1970-01-01
    相关资源
    最近更新 更多