使用API Gateway,我为Java和Android创建了一个API和两个SDK . API包含一个POST方法,该方法有两个查询字符串,“name”和“device”,在方法请求中定义 . 集成请求使用lambda代理集成将方法传递给Lambda函数 .
SDK以不同方式将查询字符串传递给Lambda请求:
来自Java SDK的Lambda请求:
{
"queryStringParameters": {
"name": "name_1",
"device": "device_1"
},
"body": null,
}
来自Android SDK的Lambda请求:
{
"queryStringParameters": null,
"body": "device=device_1&name=name_1",
}
Java SDK将查询字符串放在“queryStringParameters”中,正如预期的那样,而Android SDK将查询字符串放在“body”中 . 为什么?
根据'Robert'的要求编辑:
以下代码用于从Java发出请求:
Client client = Client.builder().build();
PostDeviceRequest postDeviceRequest = new PostDeviceRequest();
postDeviceRequest.setDevice("device_1");
postDeviceRequest.setName("name_1");
client.postDevice(postDeviceRequest);
以下代码用于从Android发出请求:
ApiClientFactory factory = new ApiClientFactory();
Client client = factory.build(Client.class);
client.devicePost("device_1", "name_1");
请注意,如果是GET方法,Android SDK会将查询字符串放在“queryStringParameters”中,如预期的那样 .