Ash*_*own 7 javascript react-native axios aws-amplify
我正在使用AWS amplify REST API向 React Native 中的 lambda 函数发出 get 请求。API/Lambda 函数由 Amplify CLI 生成。
const getData = async (loca) => {
const apiName = "api1232231321";
const path = "/mendpoint";
const myInit = {
body: {
name: "bob",
},
queryStringParameters: {
location: JSON.stringify(loca),
},
};
return API.get(apiName, path, myInit);
};
Run Code Online (Sandbox Code Playgroud)
除非我从该请求中删除正文,否则它只会返回Error: Network Error
,没有其他详细信息。queryStringParameters
如果我删除身体对象,我似乎能够得到很好的结果。
如果我这样做,请求就会顺利进行,不会出现错误
const myInit = JSON.stringify({
body: {
name: "bob",
},
});
Run Code Online (Sandbox Code Playgroud)
但是lambda 中的 ( body
event.body event
) 始终为 null。如果更改body
为同样的结果data
。我的第二个想法是,也许我只能通过POST
请求传递主体数据,但是文档似乎表明您可以使用请求,GET
因为它记录了如何访问所述主体数据......
拉姆达函数
exports.handler = async(event) => {
const response = {
statusCode: 200,
body: JSON.stringify(event),
};
return response;
};
Run Code Online (Sandbox Code Playgroud)
如何正确传递身体数据?
Amplify SDK 不会在通话时发送正文API.get()
。您的第一个示例看起来不错,但您需要使用API.post()
(或放置)。
const getData = async (loca) => {
const apiName = "api1232231321";
const path = "/mendpoint";
const myInit = {
body: {
name: "bob",
},
queryStringParameters: {
location: JSON.stringify(loca),
},
};
return API.post(apiName, path, myInit);
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7818 次 |
最近记录: |