gpt4 book ai didi

android - 适用于 Android 的 AWS API SDK 导出不接受 POST 上的正文内容

转载 作者:行者123 更新时间:2023-11-29 19:13:29 25 4
gpt4 key购买 nike

当没有主体时,我可以使用 POST 调用 AWS API 网关 OK。当有一个主体时,我得到这个错误,其中 9 是字符串主体的长度:

com.amazonaws.mobileconnectors.apigateway.ApiClientException: expected 0 bytes but received 9 (Service: null; Status Code: 0; Error Code: null; Request ID: null)

当我使用 Postman 时,我将 Body html key/pair 设置为 Body/BLUE,并且工作正常。我想知道为什么 Android 的导出 SDK 不接受正文内容。感谢您的帮助。

我的代码是:

final MyAPIClient client = factory.build(MyAPIClient.class);
String body = "Body=BLUE";
byte[] content = body.getBytes("UTF-8");
ApiRequest request = new ApiRequest(client.getClass().getSimpleName())
.withPath("/vote")
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.withBody(content);

ApiResponse response = client.execute(request);

最佳答案

看起来您发送了 9 个字节的数据,而您的请求 header 表明您将发送 0 个字节的数据(因为未设置 Content-Length)。

在验证您的请求时,服务器会意识到这一事实并因此给您错误。

在我看来,您应该再次调用 addHeader 并设置 Content-Length

ApiRequest request = new ApiRequest(client.getClass().getSimpleName())
.withPath("/vote")
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.addHeader("Content-Length", [insert byte count here])
.withBody(content);

有关 Content-Length 工作原理的更多信息,请参阅 https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html (滚动到 14.13 内容长度)

关于android - 适用于 Android 的 AWS API SDK 导出不接受 POST 上的正文内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44402077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com