Использование npm json-сервера со студией Android
Я установил локальный сервер npm json с помощью упомянутого инструмента, который будет возвращать очень простой запрос get, очень похожий на тот, который показан в примере:
{
"posts": [
{ "id": 1, "title": "json-server", "author": "typicode" }
],
"comments": [
{ "id": 1, "body": "some comment", "postId": 1 }
],
"profile": { "name": "typicode" }
}
Все разрешения были установлены в Android-студии в отношении интернет-разрешений (что для чего-то такого простого - это все, что мне нужно), и я использую небольшой скрипт okhttp, который выполняет асинхронный запрос содержимого URL-адреса, это делается внутри фрагмента (Таким образом, использование getActivity()
)
public void testAsyncCreate() {
OkHttpClient client = new OkHttpClient();
// no request body necessary since this is going to be handled via the get request as a testing purpose
Request request = new Request.Builder()
.url("http://localhost:3004/create")
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
try {
final String jsonData = response.body().string(); // the exception is caught at this point
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d(TAG,jsonData);
}
});
}catch(IOException e) {
}
}
});
}
Запрос делается, как только "пользователь" нажимает кнопку. Пока что мой единственный ответ на это:
No Network Security Config specified, using patform default
Что довольно интересно, если учесть, что тот же запрос, использующий локальный сервер NON (например, запрос get, отправленный в API poke), возвращает тело содержимого json, как и предполагалось)
На данный момент я уверен, что это было связано с тем, что это локальная среда. И до сих пор я не могу найти конкретную документацию с подробностями, касающимися тестирования в локальной среде. Отладка возвращает tag=null, как только call.enqueue()
часть начинается также.
1 ответ
Вы можете обойти все вызовы локального хоста, используя Http Toolkit, не внося никаких изменений. Это поможет вам обойти все вызовы локального хоста на ваше устройство или эмулятор.