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

api request - parameters vs query strings?

我正在使用这个 AWS 对象 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查询字符串有什么区别?

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

What is the difference between HTTP parameters and HTTP headers?

这里userId作为路径变量传递

BASE_URL + "?userId=s123"

这里 userId 作为查询参数传递

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

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

withParameters(mapParams)

用于接受参数。