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

android POST请求(https)遇到的问题,第1张

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

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

        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 将输入流转换成字符串信息:

           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

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

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

          我是不断成长的mouse ···

在工作线程中执行耗时任务,当任务完成时,会返回UI线程,一般是更新UI。这时有两种方法可以达到目的。

一种是handler.sendMessage。发一个消息,再根据消息,执行相关任务代码。

另一种是handler.post(r)。r是要执行的任务代码。意思就是说r的代码实际是在UI线程执行的。可以写更新UI的代码。

扩展资料

一个APK文件结构为:

1、META-INF\ (注:Jar文件中常可以看到)竖谨;

2、res\ (注:存放资源文件的目录) ;

3、AndroidManifest.xml (注:程序全局配置文件) ;

4、classes.dex (注:Dalvik字节码);

5、resources.arsc (注:编译后的二进制资源文件)。

Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接执行安装,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合闷樱发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式。

在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹余罩基下会发现执行是不受限制的。

参考资料来源:百度百科-Android


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12392032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存