React Native - Axios POST 带有 urlencoded 参数

问题描述 投票:0回答:2

我成功通过 Postman 触发 POST 请求以检索 mobileSession 密钥。但是当我从 React Native 应用程序(通过 Axios)尝试相同的操作时,我收到一些参数丢失的错误。有人可以根据正在运行的 Postman 请求告诉我 Axios 出了什么问题吗?

邮递员:

和 Axios 代码:

export function getMobileSession() {
    let requestOptions = {
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        }
    };

    let body = {
        username: 'myusername',
        password: 'mypw',
        api_key: 'apikey',
        api_sig: 'signature',
        method: 'auth.getMobileSession',
        format: 'json'
    };

    return axios.post('Lastfm_API_URL', JSON.stringify(body), requestOptions)
        .then(response => {
            return response;
        })
        .catch(err => {
            throw err;
        });
}

react-native post parameters axios urlencode
2个回答
0
投票

试试这个,

  return axios.post(`https://ws/audioscrobbler.com/2.0/`, JSON.stringify(body), requestOptions)
    .then(response => {
        return response;
    })
    .catch(err => {
        throw err;
    });

欲了解更多信息,请参阅此处了解反勾。


0
投票

你可以这样尝试。通过这种方式,您将获得正确的响应数据。

postUrlEncodedData = (data: { payload: any; endPoint: string; withCredentials?: boolean }) => {
    const authorization = { Authorization: 'Bearer ' + `${tokenFromLocal}` };
    const formDataEncoded = Object.keys(data.payload)
      .map(key => encodeURIComponent(key) + '=' + JSON.stringify(data.payload[key]))
      .join('&');
    return axios.post(data.endPoint, formDataEncoded, {
      timeout: 3000000,
      baseURL: BaseUrl,
      headers: Object.assign(
        { 'Content-Type': 'application/x-www-form-urlencoded' },
        HeaderConfig,
        authorization
      )
    });
  };
© www.soinside.com 2019 - 2024. All rights reserved.