android-sdk - 关于HttpClient的问题,开发环境为android studio
ringa_lee
ringa_lee 2017-04-17 13:01:22
[Android讨论组]

这个代码让我头疼了两天,在模拟器测试不行,但在2.3手机上测试正常,在4.X手机测试失败,最后发现可能是SDK的原因,请教怎么让其它SDK下也能使用?

< uses-permission android:name="android.permission.INTERNET" />
网络访问权限已经加上

以下代码当build.gradle文件的配置为
minSdkVersion 7
targetSdkVersion 7
正常

当build.gradle文件的配置为
minSdkVersion 9
targetSdkVersion 21
失败

在CSDN找到的资料是SDK3.X,4.X操作HttpClient,需要在子线程执行,这个真不知道该怎么做了。。。


package com.test.module;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class post {

public static String urlpost() {
    String URL = "http://localhost/post.php";
    HttpPost httpRequest = new HttpPost(URL);

    List params = new ArrayList();
    params.add(new BasicNameValuePair("action", "测试测试"));
    try {

        httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));

        HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);

        if (httpResponse.getStatusLine().getStatusCode() == 200) {

            return EntityUtils.toString(httpResponse.getEntity());

        } else {
            return "连接服务器失败" ;
        }
    } catch (ClientProtocolException e) {
        return "连接服务器失败" ;

    } catch (IOException e) {
        return "连接服务器失败" ;

    } catch (Exception e) {
        return "连接服务器失败" ;
    }

}

}

感谢解答问题的码友

ringa_lee
ringa_lee

ringa_lee

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号