httpwebreques-Android: Http request 不能在 4.0上运行

问题描述

Android: Http request 不能在 4.0上运行

我在 2.2 和 2.3.3 上运行这段代码可以运行,但是在4.0上崩溃。是不是http请求的问题,大家的意见呢?

public class Rezultat extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);

    //http post
    InputStream is=null;
    try{

            String url="http://google.com";
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(url);
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
    }catch(Exception e){
            Log.e("log_tag", "Error in http connection "+e.toString());
    }
    //convert response to string
    try{
            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                    sb.append(line + "n");
            }
            is.close();
            result=sb.toString();
    }catch(Exception e){
            Log.e("log_tag", "Error converting result "+e.toString());
    }

解决方案

private class DownloadFromUrlTask extends AsyncTask<String, Void, Bitmap> {

    protected void onPreExecute() {
        mDialog = ProgressDialog.show(ChartActivity.this,"Please wait...", "Retrieving data ...", true);
    }

    protected String doInBackground(String... urls) {
        //All your network stuff here.
        return result
    }
}

解决方案二:

android后面在主线程中都不应该进行耗时的网络操作,应该另开线程来处理这个问题,否则主线程会出现ANR的

解决方案三:

在Android4.0以后,只要是写在主线程(就是Activity)中的HTTP请求,运行时都会报错

解决办法是用handler和new thread来结合

解决方案四:

采用异步进行操作吧,所有与UI相关的数据交互操作,都应该采用异步,能带来良好的用户体验。

解决方案五:

采用异步进行操作吧,所有与UI相关的数据交互操作,都应该采用异步,能带来良好的用户体验。推荐你采用github上比较流行的HTTP框架:android-async-http,里面有源码解释。

解决方案六:

不要在ui线程中,做网络连接这样的费时任务,会报错的,看log应该有提示。

时间: 2024-07-29 04:36:56

httpwebreques-Android: Http request 不能在 4.0上运行的相关文章

android 4 0-关于JNI,为什么在android 4.4运行正常的程序,在4.0上运行就报错了

问题描述 关于JNI,为什么在android 4.4运行正常的程序,在4.0上运行就报错了 事情是这样的: 本身项目是基于android 4.4.2.JDK1.7 编译的,然后公司要求最低版本. 然后我将项目改成了android 2.3.3.JDK1.6编译,修改一些内容后,编译通过,在android 4.4.2的手机上运行正常. 但是现在市场部反应,在低于4.1.X的版本上运行还是有问题,因此我找来一台android 4.0.4内核的手机调试,确实报错了,在JNI模块. 报:Unsatisfi

框架-滑动窗口协议模拟用vc++/mfc做的,其中代码缺少.rc文件不能在vc++6.0上运行!!怎么补

问题描述 滑动窗口协议模拟用vc++/mfc做的,其中代码缺少.rc文件不能在vc++6.0上运行!!怎么补 求教!! // Sender.cpp : Defines the class behaviors for the application. #include "stdafx.h" #include "Sender.h" #include "SenderDlg.h" #ifdef DEBUG #define new DEBUG_NEW #u

JBPM4 4.0使用问题 -- 2: jbpm 4 在Tomcat 6.0上 运行问题

have different Class objects for the type javax/el/ExpressionFactory used in the signature 使用Tomcat发布时,需将jurl.jar,jurl-engine.jar,jurl-impl.jar替换Tomcat安装目录lib下的el-api.jar 并且项目中不能有这3个包. Or you can still use Tomcat 6.0, but you must replace el-api.jar

app-关于安卓APP在5.0以上系统上运行出现的BUG怎么解决

问题描述 关于安卓APP在5.0以上系统上运行出现的BUG怎么解决 哪位大哥APP在安卓5.0上运行过,处理过那个stack size 8mb这个异常,网络请求用的第三方框架 xutils. 解决方案 这个框架没用过,我建议你有时间去好好看看这个框架的源码,安卓5.0上我跑过,没出过什么难解决的bug啊

谷歌高管确认 Android 应用可在 Chrome OS 上运行

在前天进行的I/O开发者大会其中一场Session中,Google高管确认未来所有你所喜欢的Android应用都能在Chrome OS上运行,这也预示着未来Chrome OS会迎来更好的硬件配置,从逻辑上这意味着在未来某天Chromebook具备比肩MacBook和中端Windows设备的硬件规格,装备更好的处理器.更大容量的内存和储存空间. 在规格上,很多顶级Android设备已经能够妥善的完成Chromebook的各项任务,伴随着过去几年Chrome OS日益受到消费者的认可,毋庸置疑这将会

视频-android项目在4.4上运行正常,在5.0以上运行时出现问题

问题描述 android项目在4.4上运行正常,在5.0以上运行时出现问题 我项目在4.4上运行正常,但在5.0项目上运行时,有个视频界面放置一段时间不对其做任何操作,这个界面会出现黑屏的状况. 解决方案 把编译时出现的警告完善.确保Java每一步都实现 解决方案二: 你提供的信息太少,可以尝试在黑屏左右的时间抓下log,看log里有什么打印,然后工程用android21的sdk,确保没有过时的接口调用

Android中EditText光标在4.0中的bug及解决方法_Android

本文分析了Android中EditText光标在4.0中的bug及解决方法.分享给大家供大家参考,具体如下: 一.问题: 不知道为什么,我的EditText的在我自己的手机中出现的时候,他的光标就变得没有了,我开始还以为是光标不见了,后面我修改了一下EditText的背景颜色,才发现是因为光标的颜色变成了白色,所以没有看见. 二.解决办法 : 复制代码 代码如下: android:textCursorDrawable 设置值为"@null",但是我觉得那个不怎么好看,那个地方也可以替换

服务器-急...通过中文请求数据,为什么在android 5.0上不需要编码,而在4.04上需要?

问题描述 急...通过中文请求数据,为什么在android 5.0上不需要编码,而在4.04上需要? 通过传入一个中文str请求服务器数据,服务端有URLDecoder.decode(str)处理,在 安卓终端,为什么在android 5.0上不需要对对中文str进行处理,而在4.04上需要对str 进行URLEncoder.encode(str)处理,如果不处理,返回结果为空,难道是android 5.0 上默认做了URLEncoder.encode(str)吗??? 解决方案 加了默认编码

Android Studio 编译环信 3.0 demo 出现问题。求解~或者有现成的3.0 Demo。

问题描述 Android Studio 编译环信 3.0 demo 出现问题.求解~或者有现成的3.0 Demo.问题:Error:Execution failed for task ':easeUIDemo:mergeDebugResources'.> Some file crunching failed, see logs for details环境已经按照http://community.easemob.com/article/825307445上面的修改.编译后报错.求解! 解决方案 求