React Native Fetch Request Network Ошибка - PullRequest
0 голосов
/ 13 июня 2018

Я видел предыдущие ответы на подобные запросы, но я все еще вижу сетевую ошибку.

Вот мой код:

let base64 = require('base-64');

let url = 'https://super_secret.com';
let username = '**supersecret**';
let password = '**supersecret**';

let headers = new Headers();
//headers.append('Content-Type', 'text/json');
headers.set('Authorization', 'Basic ' + base64.encode(username + ":" + password));

let APIcall = function checkOrgCode() {
  return fetch(url, {
    method: 'GET',
    headers: headers
  })
    .then((response) => response.json())
    .then((responseJson) => {
      console.log(responseJson);
    })
    .catch((error) => {
      console.error(error);
    });
};

Если я закомментирую заголовки.headers и тестируют простой неавторизованный API, такой как https://jsonplaceholder.typicode.com/posts/1, тогда все работает нормально, поэтому очевидно, что авторизация не проходит.

Когда я тестирую свой API и заголовки в почтальоне, все в порядке.Я также попытался поместить строку в кодировке base64 непосредственно в заголовки, а не использовать функцию кодирования в моем коде.

Ответы [ 2 ]

0 голосов
/ 18 июня 2018

эээ, поэтому проблема заключалась в том, что используемый мной URL не на месте.Я использовал взлом файла имени хоста, который, конечно, работает от почтальона на моем ПК, но не на других мобильных устройствах, где я тестирую.

0 голосов
/ 13 июня 2018

Вместо использования new Headers() для создания заголовков, попробуйте просто базовый объект, чтобы упростить жизнь:

return fetch(url, {
  method: '**PROPER METHOD HERE**',
  headers: {
    // 'Content-Type': 'application/json',
    'Authorization': `Basic ${base64.encode(username + ":" + password)}`
  }
})
...