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)
用于接受参数。
我正在使用这个 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)
用于接受参数。