Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.146.105.137] |
|
Сообщ.
#1
,
|
|
|
При попытке прочитать содержимое файла на сайте.
чтение файла json public void readJSONFile() { try { String text=""; DefaultHttpClient httpclient = new DefaultHttpClient(); HttpGet httppost = new HttpGet("http://site/file.json"); HttpResponse response = httpclient.execute(httppost); HttpEntity ht = response.getEntity(); BufferedHttpEntity buf = new BufferedHttpEntity(ht); InputStream is = buf.getContent(); // ... } catch(Exception e) { // Вывод отладочного сообщения Log.d("Exception", e.getMessage()); // ошибка tvData.setText(e.getMessage()); } } ссылка на сайт http://site/file.json (фикция), конечно реально другая и существующая. Падает на HttpResponse response = httpclient.execute(httppost); Вопросы 1) Как правильно считать файл из инета? Может есть проще способ моего. 2) Как узнать почему падает? // Вывод отладочного сообщения Log.d("Exception", e.getMessage()); тупо не печатается. Добавлено Переделал так http://www.androidsnippets.com/executing-a...with-httpclient Получил исключение: 05-24 20:43:23.478 27331-27331/? E/[GET REQUEST]﹕ Network exception android.os.NetworkOnMainThreadException at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1208) at java.net.InetAddress.lookupHostByName(InetAddress.java:388) at java.net.InetAddress.getAllByNameImpl(InetAddress.java:239) at java.net.InetAddress.getAllByName(InetAddress.java:214) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:367) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:748) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:519) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:497) at com.example.user.workersinformation.WorkersInformationActivity.getInputStreamFromUrl(WorkersInformationActivity.java:67) at com.example.user.workersinformation.WorkersInformationActivity.readJSONFile(WorkersInformationActivity.java:79) at com.example.user.workersinformation.WorkersInformationActivity.onCreate(WorkersInformationActivity.java:42) at android.app.Activity.performCreate(Activity.java:5165) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1103) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2419) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2520) at android.app.ActivityThread.access$600(ActivityThread.java:162) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:158) at android.app.ActivityThread.main(ActivityThread.java:5751) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850) at dalvik.system.NativeStart.main(Native Method) Добавлено видимо я что-то не донастроил с сетью в проекте. соответственно, 3 вопрос: что настроить, чтобы доступ к сети был? да, да чайник, да, да пытаюсь нахрапом... и все же помогите |
Сообщ.
#2
,
|
|
|
1. Должно само в LogCat напечатать при необработанном исключении (хотя смотря какая IDE)
2. Используйте Try...Catch 3. NetworkOnMainThreadException - запрещено выполнять сетевые операции в потоке UI, создайте отдельный поток. |