Каждый раз, когда я пытаюсь выполнить запрос API от: «http://api.openweathermap.org/data/2.5/weather?q=London»
коду не удается получить данные.
Однако с другими URL-адресами это работает нормально. Вот основной Java-файл.
Я добавил необходимые разрешения в файл манифеста.
package thebestone.vicky.jsondemo;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.ExecutionException;
public class MainActivity extends AppCompatActivity {
class GetData extends AsyncTask{
@Override
protected String doInBackground(String... strings) {
String result = "";
URL url;
HttpURLConnection urlConnection = null;
try{
url = new URL(strings[0]);
urlConnection = (HttpURLConnection)url.openConnection();
InputStream in = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
int data = reader.read();
while(data != -1){
char ch = (char) data;
result = result + ch;
data = reader.read();
}
return result;
}catch (Exception e) {
e.printStackTrace();
return "Failed";
}
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.i("DATA FETCHED: ", s);
}
}
public void onClick(View view){
GetData task = new GetData();
task.execute("http://api.openweathermap.org/data/2.5/weather?q=London");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
< /code>
logcat: < /p>
08-18 19:05:10.478 2380-4307/thebestone.vicky.jsondemo W/System.err: java.io.FileNotFoundException: http://api.openweathermap.org/data/2.5/weather?q=London
08-18 19:05:10.480 2380-4307/thebestone.vicky.jsondemo W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:250)
08-18 19:05:10.480 2380-4307/thebestone.vicky.jsondemo W/System.err: at thebestone.vicky.jsondemo.MainActivity$GetData.doInBackground(MainActivity.java:33)
08-18 19:05:10.480 2380-4307/thebestone.vicky.jsondemo W/System.err: at thebestone.vicky.jsondemo.MainActivity$GetData.doInBackground(MainActivity.java:19)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:305)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at java.lang.Thread.run(Thread.java:761)
08-18 19:05:10.481 2380-2380/thebestone.vicky.jsondemo I/DATA FETCHED:: Failed
< /code>
Также я не могу выяснить ошибку в logcat и программе. < /p>
Любая помощь будет ценить.
Подробнее здесь: https://stackoverflow.com/questions/457 ... oid-studio
Запрос API: не работать в Android Studio ⇐ Android
Форум для тех, кто программирует под Android
1737962342
Anonymous
Каждый раз, когда я пытаюсь выполнить запрос API от: «http://api.openweathermap.org/data/2.5/weather?q=London»
коду не удается получить данные.
Однако с другими URL-адресами это работает нормально. Вот основной Java-файл.
Я добавил необходимые разрешения в файл манифеста.
package thebestone.vicky.jsondemo;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.ExecutionException;
public class MainActivity extends AppCompatActivity {
class GetData extends AsyncTask{
@Override
protected String doInBackground(String... strings) {
String result = "";
URL url;
HttpURLConnection urlConnection = null;
try{
url = new URL(strings[0]);
urlConnection = (HttpURLConnection)url.openConnection();
InputStream in = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
int data = reader.read();
while(data != -1){
char ch = (char) data;
result = result + ch;
data = reader.read();
}
return result;
}catch (Exception e) {
e.printStackTrace();
return "Failed";
}
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.i("DATA FETCHED: ", s);
}
}
public void onClick(View view){
GetData task = new GetData();
task.execute("http://api.openweathermap.org/data/2.5/weather?q=London");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
< /code>
logcat: < /p>
08-18 19:05:10.478 2380-4307/thebestone.vicky.jsondemo W/System.err: java.io.FileNotFoundException: http://api.openweathermap.org/data/2.5/weather?q=London
08-18 19:05:10.480 2380-4307/thebestone.vicky.jsondemo W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:250)
08-18 19:05:10.480 2380-4307/thebestone.vicky.jsondemo W/System.err: at thebestone.vicky.jsondemo.MainActivity$GetData.doInBackground(MainActivity.java:33)
08-18 19:05:10.480 2380-4307/thebestone.vicky.jsondemo W/System.err: at thebestone.vicky.jsondemo.MainActivity$GetData.doInBackground(MainActivity.java:19)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:305)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
08-18 19:05:10.481 2380-4307/thebestone.vicky.jsondemo W/System.err: at java.lang.Thread.run(Thread.java:761)
08-18 19:05:10.481 2380-2380/thebestone.vicky.jsondemo I/DATA FETCHED:: Failed
< /code>
Также я не могу выяснить ошибку в logcat и программе. < /p>
Любая помощь будет ценить.
Подробнее здесь: [url]https://stackoverflow.com/questions/45758040/api-request-not-working-from-android-studio[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия