gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:11:54 24 4
gpt4 key购买 nike

我正在使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com