gpt4 book ai didi

java - Android 上的 HTTP 请求

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:27 25 4
gpt4 key购买 nike

我完全绝望了,这就是我向你寻求帮助的原因。我在 android 应用程序中有以下代码:

public void OnButtonClick(View view) throws ClientProtocolException, IOException, Exception
{
URL yahoo = new URL("http://privyrobsi.sk/brigades/getBrigades.json");
URLConnection yc = yahoo.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;

EditText ET = (EditText) findViewById(R.id.editText2);
while ((inputLine = in.readLine()) != null) ET.setText(ET.getText()+inputLine);
in.close();
}

我从 here 得到了这段代码,我只是稍微修改了一下。当我尝试将代码作为独立的 Java 应用程序运行时,它可以正常工作。但是当我尝试在 android 中使用它时,模拟器说不幸的是,应用程序停止了。我从 LogCat 中保存了日志 here .我的 list 文件中也有 uses-permission android:name="android.permission.INTERNET"。

最佳答案

您不能在主线程中执行网络操作。在 asynctask 中执行此操作.

更新:

您的 logcat 数据显示您有一个 NetworOnMainThreadException。根据doc

The exception that is thrown when an application attempts to perform a networking operation on its main thread.

This is only thrown for applications targeting the Honeycomb SDK or higher. Applications targeting earlier SDK versions are allowed to do networking on their main event loop threads, but it's heavily discouraged.

解决方案:

正如我已经提到的,您必须使用不同的线程来执行网络操作。您可以使用以下内容

  1. 异步任务
  2. 不同的工作线程
  3. 负责人

检查这个thread .这个问题的答案几乎涵盖了所有的解决方案

关于java - Android 上的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16422627/

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