美文网首页
android POST请求(https)遇到的问题

android POST请求(https)遇到的问题

作者: wh_mouse | 来源:发表于2016-10-28 18:03 被阅读506次

           安卓项目开发第一阶段完工,接下来是后台交互。当然,与后台交互第一步一般都是与注册登录接口打交道。

            不说废话了,进入正题···以下讲的post请求,是跟https相关

    一、android POST请求流程

            1.将访问路径转成URL

                URLurl =newURL(path);

            2.通过URL获取连接:

                 HttpURLConnection conn = (HttpURLConnection) url.openConnection();

            3.设置请求方式:

                conn.setRequestMethod("POST");

            4.设置请求超时时间:

                conn.setConnectTimeout(5000);

            5.设置请求头信息:

                conn.setRequestProperty("Content-type","application/json");

           6.获取输出流,将数据写给服务器:

                6.1 OutputStreamos = conn.getOutputStream();// 获取输出流

                6.2 os.write(data.getBytes());// 将数据写给服务器

            7.设置响应码:

                 int code = conn.getResponseCode();

                7.1 请求码200,表明请求成功,获取返回内容的输入流:

                  InputStream is = conn.getInputStream();

                  Log.v("json","MESSAGE == > "+streamToString(is));

                7.2 将输入流转换成字符串信息:

    将输入流转换成字符串信息 demo

               7.3 若返回值400,则是返回网络异常,做出响应的处理。



    二、遇到的问题

          1、android.os.NetworkOnMainThreadException

             原因:

             android.os.NetworkOnMainThreadException是说不要在主线程中访问网络,这个是android3.0版本开始就强制程序不能在主线程中访问网络,要把访问网络放在独立的线程中。

            解决方法:(方法一亲测有效,另外两种方法未测试,想了解的请移步至此···尊重原文作者劳动成果)

            1>  想要忽略这些强制策略问题的话,可以在onCreate()方法里面加上

    StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();

    StrictMode.setThreadPolicy(policy);

                并在方法上加上@SuppressLint("NewApi"),重试,OK。

               此时,又抛出另一个问题······(程序猿就是不断的解决各种问题,泪奔~~)

          2、javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path

          解决方法:忽略证书问题()

    trustAllHosts setHostnameVerifier

              以上是百度到的方法,毕竟我只是一个刚接触android开发才两个月的小菜鸟,原文比较乱,整理一番供查阅。原文出处(尊重原文作者劳动成果)

              我是不断成长的mouse ···

    相关文章

      网友评论

          本文标题:android POST请求(https)遇到的问题

          本文链接:https://www.haomeiwen.com/subject/hxeeuttx.html