【问题标题】:How do i make a POST request to an api in React Native?如何在 React Native 中向 API 发出 POST 请求?
【发布时间】:2020-10-18 07:35:13
【问题描述】:

我正在尝试向 api 发出 Post 请求,但由于某种原因,我在此过程中收到了 400 条反馈。由于我是这方面的初学者,我真的不知道我在哪里弄错了。我知道 400 错误与不正确的语法有关,但我不确定这里的情况。我还查看了其他相关帖子,但没有一个有助于解决我的问题。我也一遍又一遍地阅读了文档,但仍然看不到我在哪里犯了错误。如果您能帮我指出问题,我将不胜感激。

  myPostRequest(){
    
    var mybody = { 
      "amount": "5.0",
      "currency": "EUR",
      "externalId": "6547864",
      "payer": { "partyIdType": "MSISDN","partyId": "0977948551"}
    }
    mybody = JSON.stringify(mybody);
    var token = "mytoken";   
    //POST request 
    fetch('https://sandbox.momodeveloper.mtn.com/collection/v1_0/requesttopay', {
      method: "POST",
      headers: {
        'Authorization': 'Bearer '+token,
        'X-Reference-Id': 'f9b8b0a-XXXXXXXXXX',
        'X-Target-Environment': 'sandbox',
        'Ocp-Apim-Subscription-Key': '14d2a71dXXXXXXXXX',
      },
      body: mybody,
    })
    .then((responseJson) => {
        alert(JSON.stringify(responseJson));
        console.log(responseJson);
    })
    .catch((error) => {
      alert(JSON.stringify(error));
      console.error(error);
    });
  }

【问题讨论】:

    标签: json react-native rest fetch-api


    【解决方案1】:

    使用axios/apisauce 而不是fetch

    apisauce 示例:

    import { create } from 'apisauce';
    
    const api = create({
      baseURL: `http://example.com`,
    });
    
    const response = await api.post('/path/to/', body, { headers });
    

    在你的情况下:

    
    import { create } from 'apisauce';
    
    const api = create({
        baseURL: `https://sandbox.momodeveloper.mtn.com`,
    });
    
    const response = await api.post(
        '/collection/v1_0/requesttopay',
        {
            "amount": "5.0",
            "currency": "EUR",
            "externalId": "6547864",
            "payer": { "partyIdType": "MSISDN", "partyId": "0977948551" }
        },
        {
            headers: {
                'Authorization': 'Bearer ' + token,
                'X-Reference-Id': 'f9b8b0a-XXXXXXXXXX',
                'X-Target-Environment': 'sandbox',
                'Ocp-Apim-Subscription-Key': '14d2a71dXXXXXXXXX',
            }
        }
    );
    
    

    【讨论】:

    • 您好,我已经尝试了您的建议,但仍然得到相同的响应。但是,当我尝试在 Postman 中发送具有相同参数的相同请求时,它可以在那里工作。我不知道为什么它专门在 React Native 中给了我这个 400 错误。 Вообще не понимаю.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 2021-09-05
    相关资源
    最近更新 更多