在AsyncTask中的onExecute中请求数据

在AsyncTask中的onExecute中请求数据

@Override
protected String doInBackground(String... strings) {
    try {
        URL url = new URL(strings[0]);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setConnectTimeout(6000);
        if (conn.getResponseCode() == HttpURLConnection.HTTP_OK){
            InputStream ins = conn.getInputStream();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int len = 0;
            byte[] buf = new byte[1024];
            while ((len = ins.read(buf)) > -1) {
                baos.write(buf, 0, len);
            }
            String msg = baos.toString();
            ins.close();
            baos.close();
            conn.disconnect();
            return msg;
        }
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}

怎么报IOException: Cleartext HTTP traffic to www.imooc.com not permitted

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕雪 2020-06-17 09:56:46

Android P(9.0)以上使用HttpUrlConnection进行http请求就会出现你贴出的错误信息,因为google为了保证数据安全,在Android 系统(Android P)以上的应用上将要求默认使用加密连接,可以把请求改成https或者参见《Android网络操作》权限的处理。祝:学习愉快

提问者 Charles_King_ 2020-06-16 22:23:57

java.net.UnknownHostException: Unable to resolve host "www.imooc.com": No address associated with hostname

报的是这个错

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.Android 网络操作与流行框架
  • 参与学习           人
  • 提交作业       220    份
  • 解答问题       1800    个

本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师