Javascript 如何通过放大休息请求传递身体数据?
我正在使用对React Native中的lambda函数发出get请求。API/Lambda函数由Amplify CLI生成Javascript 如何通过放大休息请求传递身体数据?,javascript,react-native,axios,aws-amplify,Javascript,React Native,Axios,Aws Amplify,我正在使用对React Native中的lambda函数发出get请求。API/Lambda函数由Amplify CLI生成 const getData = async (loca) => { const apiName = "api1232231321"; const path = "/mendpoint"; const myInit = { body: { name: "bob&q
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);
};
除非我从这个请求中删除主体,否则它只返回Error:networkerror
,没有其他详细信息。我似乎能够获得queryStringParameters
,不过如果我删除body对象,效果会很好
如果我这样做,请求将顺利通过,没有错误
const myInit = JSON.stringify({
body: {
name: "bob",
},
});
但是lambda中事件
(event.body)中的主体始终为空。如果将正文
更改为数据
,则结果相同。我的第二个想法是,也许我只能通过POST
请求传递身体数据,但是文档似乎显示您可以使用GET
请求
Lambda函数
exports.handler = async(event) => {
const response = {
statusCode: 200,
body: JSON.stringify(event),
};
return response;
};
如何正确传递身体数据?下面的代码适用于我发送短信
var AWS = require('aws-sdk');
exports.handler = function (event, context, callback) {
console.log("Log-Event:"+event.message);
console.log("Log-Event:"+event.phoneNUmber);
// Create publish parameters
var params = {
Message: event.message, /* required */
PhoneNumber: event.phoneNumber,
MessageStructure: 'string'
};
var sns = new AWS.SNS();
// Create promise and SNS service object
var publishTextPromise = sns.publish(params).promise();
// Handle promise's fulfilled/rejected states
publishTextPromise.then(
function(data) {
console.log("MessageID is " + data.MessageId);
}).catch(
function(err) {
console.error(err, err.stack);
});
};
下面的代码适用于我发送短信
var AWS = require('aws-sdk');
exports.handler = function (event, context, callback) {
console.log("Log-Event:"+event.message);
console.log("Log-Event:"+event.phoneNUmber);
// Create publish parameters
var params = {
Message: event.message, /* required */
PhoneNumber: event.phoneNumber,
MessageStructure: 'string'
};
var sns = new AWS.SNS();
// Create promise and SNS service object
var publishTextPromise = sns.publish(params).promise();
// Handle promise's fulfilled/rejected states
publishTextPromise.then(
function(data) {
console.log("MessageID is " + data.MessageId);
}).catch(
function(err) {
console.error(err, err.stack);
});
};
Amplify SDK不会在API.get()调用中发送正文。您的第一个示例看起来不错,但需要使用API.post()
(或put)
const getData=async(loca)=>{
const apiName=“api1232231321”;
const path=“/mendpoint”;
常量myInit={
正文:{
姓名:“鲍勃”,
},
queryStringParameters:{
位置:JSON.stringify(loca),
},
};
返回API.post(apiName,path,myInit);
};
Amplify SDK不会在API.get()调用上发送主体。您的第一个示例看起来不错,但需要使用API.post()
(或put)
const getData=async(loca)=>{
const apiName=“api1232231321”;
const path=“/mendpoint”;
常量myInit={
正文:{
姓名:“鲍勃”,
},
queryStringParameters:{
位置:JSON.stringify(loca),
},
};
返回API.post(apiName,path,myInit);
};