Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过放大休息请求传递身体数据?_Javascript_React Native_Axios_Aws Amplify - Fatal编程技术网

Javascript 如何通过放大休息请求传递身体数据?

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

我正在使用对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);
  };
除非我从这个请求中删除主体,否则它只返回
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);
};