Привет, ребята У меня проблема с созданием файла JSON с URL-адресом google, который у меня есть. Это мой код, который я использую.Создание файла JSON с URL-адресом
import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class DownloadUrl {
public String readUrl(String strUrl) throws IOException, InterruptedException {
Log.d("URLS = ",strUrl);
Thread.sleep(2000);
String data = "";
InputStream iStream = null;
HttpURLConnection urlConnection = null;
try {
URL url = new URL(strUrl);
// Creating an http connection to communicate with url
urlConnection = (HttpURLConnection) url.openConnection();
// Connecting to url
urlConnection.connect();
// Reading data from url
iStream = urlConnection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(iStream));
StringBuffer sb = new StringBuffer();
String line = "";
while ((line = br.readLine()) != null) {
sb.append(line);
}
data = sb.toString();
Log.d("downloadUrl", data.toString());
br.close();
} catch (Exception e) {
Log.d("Exception", e.toString());
} finally {
iStream.close();
urlConnection.disconnect();
}
return data;
}
}
Он отлично работает, когда я бросить URL, который выглядит, как это в него. https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7207523,-73.383851&radius=4828&type=bar&key=MYKEY
Но когда я пытаюсь бросить URL-адрес, который выглядит в этом. https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJe3AmoGsr6IkRuWcK1LAh-DE&key=MYKEY
Я получаю сообщение об ошибке: D/GooglePlacesReadTask: java.lang.NullPointerException: Попытка вызвать виртуальный метод 'аннулируются java.io.InputStream.close()' на нулевой ссылки на объект
Я не знаю, как я это исправить. Любая помощь?
Ваш код кажется нормально, я не вижу никаких проблем с кодом. где, вы всегда можете добавить, 'if (iStream! = Null) iStream.close();' – nikhilr57
Спасибо за ответ так быстро. Я попробовал то, что вы предложили. Теперь im получение: D/GooglePlacesReadTask: android.os.NetworkOnMainThreadException –
Зачем это работать с одной ссылкой, а не с другой? –