Итак, я пытаюсь прочитать поток с URL-адреса и установить результат в текстовом представлении.Проблема заключается в том, что код Android Studio не возвращает никакого результата на моем устройстве, в то время как тот же код на сетевых компонентах возвращает вывод потока.Я не понимаю, в чем проблема, потому что я использую тот же код, который использовался в Android Studio и Netbeans.Als Приложение на Android Studio не вылетает и не выдает никаких ошибок.
Просто чтобы позволить вамзнаю, что я открыл URL, который находится в коде Android Studio в браузере моего телефона, и он работает.Также я добавил интернет-разрешение в манифест.И я поместил функцию changeText в атрибут «onClick».
Следующий код был протестирован на NetBeans и Android Studio (на моей galaxy S6).
Код Android Studio:
package com.example.mohammed.acc;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
public void changeText (View v){
TextView t1 = (TextView)findViewById(R.id.t1);
URL url;
HttpURLConnection con;
try{
StringBuilder sb = new StringBuilder();
url = new URL("http://192.168.1.104:8000/api");
con = (HttpURLConnection) url.openConnection();
BufferedInputStream in = new BufferedInputStream(con.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String Line = "";
while((Line = reader.readLine()) != null){
sb.append(Line);
}
t1.append(sb.toString());
in.close();
}
catch (MalformedURLException ex) {
t1.setText(ex.getMessage());
}
catch (IOException ex){
t1.setText(ex.getMessage());
} catch (Exception ex){
t1.setText(ex.getMessage());
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Код NetBeans:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication21;
import java.io.BufferedInputStream;
import java.util.Stack;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class JavaApplication21 {
public static void main(String[] args) {
try{
StringBuilder sb = new StringBuilder();
URL url = new URL("http://127.0.0.1:8000/api");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
BufferedInputStream in = new BufferedInputStream(con.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String Line = "";
while((Line = reader.readLine()) != null){
sb.append(Line);
}
System.out.print(sb.toString());
in.close();
}
catch (Exception ex){
System.out.print(ex.getMessage());
}
}
}
Вывод NetBeans: работает, как вы можете видеть. Студия Android, вывод моего телефона: Регистрация снимков Это после запуска и нажатия кнопки.