Не удалось получить данные JSON из-за тайм-аута соединения
У меня есть веб-сервис с пружинной загрузкой, который генерирует данные JSON и работает на моем локальном компьютере. http://localhost:8080/demo/services
,
Я пытался получить данные JSON, используя мой IP-адрес, но он выдал следующую ошибку в LogCat:
09-23 15:18:27.897 2923-3540/com.example.palangou.foodie1
W/System.err: java.net.ConnectException: failed to connect to /192.168.1.9
(port 8080): connect failed: ETIMEDOUT (Connection timed out)
Соответствующий код Java:
new JSONpart().execute("http://192.168.1.9:8080/demo/services");
public class JSONpart extends AsyncTask<String, Void, List<POJO>> {
@Override
protected List<POJO> doInBackground(String... urls) {
HttpURLConnection connection = null;
BufferedReader reader = null;
StringBuffer buffer = new StringBuffer();
String place = "", name = "";
List<POJO> arraylist = new ArrayList<>();
try {
URL url = new URL(urls[0]);
try {
connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream input = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(input));
String line = "";
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
Log.d("Recursive places",buffer.toString());
String finalJSON = buffer.toString();
try {
//JSONObject object = new JSONObject(finalJSON);
JSONArray array = new JSONArray(finalJSON);
for(int i=0;i< array.length();i++)
{//Log.d("Recursive places", finalobject.getString("name"));
POJO pojo = new POJO();
JSONObject finalobject = array.getJSONObject(i);
pojo.setName(finalobject.getString("service"));
pojo.setPlace(finalobject.getString("servicedesc"));
//
arraylist.add(pojo);
}
} catch (JSONException e) {
e.printStackTrace();
}
// Log.d("name", arraylist.get(1).getName().toString());
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
;
} finally {
connection.disconnect();
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// return buffer.toString();
return arraylist;
}
@Override
protected void onPostExecute(List<POJO> s) {
super.onPostExecute(s);
// Log.d("OnPOST", s.get(1).getName().toString());
FoodiesAdapater adapter = new FoodiesAdapater(getApplicationContext(),R.layout.row,s);
listView.setAdapter(adapter);
}
}
1 ответ
Решение
Пожалуйста, проверьте, работает ли ваш API или URL. Было бы лучше, если вы загрузите свой файл Json на этот http://myjson.com/ и получите URL с этого онлайн-сервера.