React Native - выполнение запроса на выборочное в эмуляторе ненадежноAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 React Native - выполнение запроса на выборочное в эмуляторе ненадежно

Сообщение Anonymous »

Я впервые делаю новое нативное приложение React. В этом приложении мне нужно сделать запрос на получение в конечную точку. Это следующий код: < /p>

Код: Выделить всё

const HOST = "localhost";
const PORT = "8069";
const DB = "db_2345";

const webAuth = async () => {
try {
// Retrieve user credentials
const userData = await AsyncStorage.getItem('userData');
if (!userData) throw new Error('User not logged in');
const {user, pass} = JSON.parse(userData);

// Authenticate user
const authData = JSON.stringify({
jsonrpc: '2.0',
params: {
db: DB,
login: user,
password: pass,
},
});

const authRes = await fetch(
`http://${HOST}:${PORT}/web/session/authenticate`,
{
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Credentials': true,
},
body: authData,
},
);

if (!authRes.ok) throw new Error('Authentication failed');

const sessionCookie = authRes.headers.get('set-cookie');
if (!sessionCookie)
throw new Error(
"Session ID couldn't be used! Unable to find it in headers",
);
return sessionCookie;

} catch (error) {
console.log(error);
throw error;
}
};

async function checkInOutSystem (latitude=20 , longitude=20) {
try{
const sessionCookie = await webAuth();

// Perform check-in/out
const locData = JSON.stringify({
jsonrpc: "2.0",
method: "call",
params: { latitude, longitude },
});

const attendanRes = await axios.post(
`http://${HOST}:${PORT}/hr_attendance/systray_check_in_out`,
locData,
{
// withCredentials: true,
headers: {
"Content-Type": "application/json",
Cookie: sessionCookie,
"Accept": "application/json",
},
}
);
console.log("attendanceRes:",attendanRes);
if (attendanRes.status !== 200) throw new Error("Check-in/out request failed");

console.log(attendanRes.data)
const responseJson = attendanRes.data;
console.log("responseJson",responseJson);
return responseJson;
} catch (error) {
console.error("Check-in/out error:", error.message);
throw error;
}
};

при выполнении этой части кода, особенно в эмуляторе Android, по какой -то странной причине запрос на http: // $ {host}: $ {port}/hr_attendance/systray_check_in_out < /code> сбои с ошибкой, говорящей на сетевой ошибке , но это не происходит каждый раз. Это работает иногда, но примерно в 95% случаев, он терпит неудачу. Время в фактическом устройстве Android при подключении через ADB. Тот же код работает, когда он работает на устройстве Android, поэтому нет причин, чтобы он не работал в эмуляторе. Да, Android: USESCLARETEXTTRAFFIC уже установлен на True. Ни использование FETTH, ни использование AXIOS не влияет на эту проблему. Нерелиабличность сетевого вызова остается неизменной в эмуляторе. T Работайте отлично. < /p>
Любая помощь или информация об этом ценятся! Спасибо!


Подробнее здесь: https://stackoverflow.com/questions/794 ... unreliable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»