api 请求 - 参数与查询字符串?

时间:2021-07-28 10:30:28

标签: android amazon-web-services aws-api-gateway api-gateway

我正在使用这个 AWS Object ApiRequest。

I've a url endpoint: url = "https://...com/songs"

不工作请求(响应 500):

ApiRequest request1 = new ApiRequest().withPath(url + "?userId=s123")
                    .withHttpMethod(HttpMethodName.GET);

工作请求(响应 200):

Map<String, String> mapParams = new HashMap<>();
mapParams.put("userId", "s123");

ApiRequest request1 = new ApiRequest().withPath(url)
                    .withHttpMethod(HttpMethodName.GET)
                    .withParameters(mapParams);

这是 ApiRequest 对象文档:

https://docs.aws.amazon.com/AWSAndroidSDK/latest/javadoc/index.html?com/amazonaws/mobileconnectors/apigateway/ApiRequest.html

为什么在查询字符串(url)中使用 userId 作为参数时不起作用? withParameters 和查询字符串有什么区别?

2 个答案:

答案 0 :(得分:1)

Url 参数和查询参数不同。查询参数在 URL 内。 HTTP 标头不是 URL 的一部分。它们是 HTTP 消息的一部分。也许这会有所帮助;

What is the difference between HTTP parameters and HTTP headers?

答案 1 :(得分:1)

这里userId作为路径变量传递

BASE_URL + "?userId=s123"

这里 userId 作为查询参数传递

mapParams.put("userId", "s123");

路径变量不起作用,因为 API 旨在通过不使用路径变量的查询参数获取参数。他们提到了功能

<块引用>

withParameters(mapParams)

用于接受参数。

相关问题