- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 android 中从 Http Url 读取 XML 响应时遇到问题,尽管我在 Java (eclipse) 中尝试了相同的代码,它可以工作,但在 android 设备上它崩溃了。
代码:
try {
URL url = new URL(link);
HttpURLConnection request1 = (HttpURLConnection) url.openConnection();
request1.setRequestMethod("GET");
request1.connect();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
日志猫:
11-25 01:11:28.853: D/AndroidRuntime(3600): Shutting down VM
11-25 01:11:28.853: W/dalvikvm(3600): threadid=1: thread exiting with uncaught exception (group=0x41832da0)
11-25 01:11:28.863: E/AndroidRuntime(3600): FATAL EXCEPTION: main
11-25 01:11:28.863: E/AndroidRuntime(3600): Process: com.example.qbuster, PID: 3600
11-25 01:11:28.863: E/AndroidRuntime(3600): java.lang.IllegalStateException: Could not execute method of the activity
11-25 01:11:28.863: E/AndroidRuntime(3600): at android.view.View$1.onClick(View.java:3969)
11-25 01:11:28.863: E/AndroidRuntime(3600): at android.view.View.performClick(View.java:4637)
11-25 01:11:28.863: E/AndroidRuntime(3600): at android.view.View$PerformClick.run(View.java:19422)
11-25 01:11:28.863: E/AndroidRuntime(3600): at android.os.Handler.handleCallback(Handler.java:733)
11-25 01:11:28.863: E/AndroidRuntime(3600): at android.os.Handler.dispatchMessage(Handler.java:95)
11-25 01:11:28.863: E/AndroidRuntime(3600): at android.os.Looper.loop(Looper.java:136)
11-25 01:11:28.863: E/AndroidRuntime(3600): at android.app.ActivityThread.main(ActivityThread.java:5586)
11-25 01:11:28.863: E/AndroidRuntime(3600): at java.lang.reflect.Method.invokeNative(Native Method)
最佳答案
您可能遇到的问题是您正在 UI(主)线程上执行网络操作。一种简单的解决方法是启动一个新线程并在后台执行操作。您可以使用 Asynctask 类来实现此目的,如下所示:
private class AsyncCaller extends AsyncTask<Void, Void, Void>
{
@Override
protected void onPreExecute() {
super.onPreExecute();
//This runs on UI thread still.
}
@Override
protected Void doInBackground(Void... params) {
//This runs in the background. Make your network operations here
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
//This method will be running on UI thread
//This is called when onBackground ha finished
}
}
然后您可以实例化 AsyncCaller 并对其调用execute()。
关于java - Android 在执行 HttpGet 请求时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27115636/
公共(public)类 ServiceHandler { static String response = null; public final static int GET = 1; public
为什么在WebApi框架中使用HttpGet而不是HttpPost? 我很清楚 Post 或 Get 类型之间的区别,一个是通过 url,另一个不是(作为基本理解) 但我也知道主要区别(可以在服务器上
我正在尝试做一件非常简单的事情,几天前它还在工作。 CloseableHttpClient client = HttpClientBuilder.create().build();
我正在尝试从 html 编写此脚本,但无法得到结果,有什么问题吗? function httpGet() { var httpClient = util.newHttpClient(); v
我正在尝试从以下 URL 获取文本响应: http://translate.google.cn/translate_a/single?client=t&sl=zh-CN&tl=en&dt=t&tk=2
我的 MainActivity.java 文件中有这个: public static void getLatestVersion() { try { Strin
我正在尝试使用 GET 将参数发送到脚本,但我收到此错误: java.lang.IllegalStateException: Target host must not be null, or set
我正在使用 Slim 框架通过 GET 方法在 Android 中执行 REST API。我对检索表的所有值没有任何问题,例如 cars。 当我尝试通过 id 访问 Car 的 name 时,问题就来
我正在努力通过查询字符串获取数据。我已经完成了 httppost,但我还没有尝试使用 httpget。但我不能。 List nameValuePairs = new ArrayList();
因此,我使用的是另一篇旧帖子中的以下代码,但其中一部分有问题,行:HttpGet request = new HttpGet(url); 不起作用。在 url 点我放了类似 www.stackover
是否可以在 HttpGet 中使用管道字符? 我有一个用竖线分隔的经纬度列表,例如53.42290885462988,-1.4404749870300293|53.39965626194152,-1.
我想从我的 Android 应用程序中执行 httpGet,但我没有得到任何响应,当我从浏览器中执行相同的 httpGet 时它起作用了。我还使用 chrome 扩展 Postman 来测试我发送的
我正在使用 RESTFul HttpGet 服务 导入org.apache.http.client.methods.HttpGet; 我创建了一个函数来查询另一台计算机上的服务。该调用工作正常,但是我
Startup.cs,样板: app.UseMvc(routes => { routes.MapRoute( name: "default", template
我希望能够将复杂类型作为我的 HttpGet 方法的参数进行处理。 当 api 方法不接受任何参数时,方法 pickNFirstElements 起作用,但当我尝试传递对象时不起作用。 我有一个想法,
让我先概括一下情况: 我有一个基本的 Controller ,如下所示: public class SearchRequestController : ApiController { publ
我正在用 Ruby 编写一些代码...但我无法弄清楚基本身份验证如何与 Crystal-lang 一起工作。 在 ruby 中,我必须始终使用 request.basic_auth 但这在 Cry
我正在开发 Uber API,并尝试使用 here 中的说明获取用户个人资料。 以下curl命令工作正常,可以从uber获取用户信息: curl -H "Authorization: Bearer Y
我正在使用 HttpGet 返回一个文件,并且 HttpGet 不允许参数是 URL,它必须是 URL,但是我面临的问题是我必须*使用 httpclient,并且我需要能够在 URI/URL 中放置特
这个问题已经有答案了: How can I fix 'android.os.NetworkOnMainThreadException'? (65 个回答) 已关闭10 年前。 我正在尝试向 http:
我是一名优秀的程序员,十分优秀!