java - 我的 Android 应用程序无法连接到服务器

标签 java android read-data

我正在使用 xampp 从服务器读取数据,但数据为空 这是我的连接 Activity :

public String link="";
public AsyncTaskConnect(String link){
    this.link=link;
}
@Override
protected Object doInBackground(Object[] params) {
    try{
        URL url=new URL(link);
        URLConnection connection=url.openConnection();
        BufferedReader reader=new BufferedReader(new InputStreamReader(connection.getInputStream()));
        StringBuilder builder=new StringBuilder();
        String line=null;
        while((line=reader.readLine())!=null){
            builder.append(line);
        }
        MainActivity.data=builder.toString();
    }catch (Exception e){
    }
    return "";
}

这是主要 Activity :

public static String data="";
TextView txthello;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    txthello=(TextView)findViewById(R.id.txthello);
    new AsyncTaskConnect("http://192.168.1.2/digikala/test.php").execute();
    txthello.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(MainActivity.this,data,Toast.LENGTH_LONG).show();
        }
    });
}

但是不起作用,我该怎么办?

最佳答案

but the data is empty

因为execute不是阻塞调用。

假设您实际上可以到达服务器,MainActivity.data 是一个空字符串,直到 Asynctask onPostExecute 之后

您可以使用 Volley、Okhttp、Retrofit 等来简化您的网络代码

Comparison of Android networking libraries: OkHTTP, Retrofit, and Volley

或将回调添加到您的异步任务中

How to get the result of OnPostExecute() to main activity because AsyncTask is a separate class?

关于java - 我的 Android 应用程序无法连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45905805/

相关文章:

java - 修改现有日期,结果将与java格式相同

java - MIDI 输入的实时解析 - 节奏区分

android - 拉取与新闻文章相关的缩略图

c - C语言从excel文件中读取数据

java - GWT 披露面板()

java - 我们应该为 OnClickListeners 或内部命名类使用匿名类吗?

android - 创建 apk 文件时我应该选择多少支持的架构

android webview缓存图像

java - 从 *.msg 文件接收电子邮件地址而不是带有 POI 的姓名 [Java]

java - 如何使用 Java 获取 .adoc 页面大小