当前位置:天才代写 > tutorial > 安卓教程 > Android开发之网络请求HttpURLConnection

Android开发之网络请求HttpURLConnection

2021-02-15 10:26 星期一 所属: 安卓教程 浏览:546

Android中关键出示了二种方法来开展HTTP实际操作,HttpURLConnection和HttpClient。

这二种方法都适用HTTPS协议书、以流的方式开展提交和免费下载、配备请求超时時间、IPv6、及其数据库连接池等作用。

HttpClient

DefaultHttpClient和它的弟兄AndroidHttpClient全是HttpClient实际的完成类,他们都有着诸多的API,并且完成相对稳定,bug总数也非常少。

但另外也因为HttpClient的API总数太多,促使大家难以不在毁坏兼容模式的状况下对它开展升級和拓展,因此 现阶段Android精英团队在提高和提升HttpClient层面的工作责任心并不积极主动。

HttpURLConnection

HttpURLConnection是一种多功能、轻巧极的HTTP手机客户端,应用它来开展HTTP实际操作能够适用大部分的应用软件。尽管HttpURLConnection的API出示的非常简单,可是另外这也促使我们可以更为非常容易地去应用和拓展它。

哪一种才算是最好是的?

在Android 2.2版本号以前,HttpClient有着较少的bug,因而应用它是最好是的挑选。

而在Android 2.3版本号及之后,HttpURLConnection则是最好的挑选。它的API简易,容积较小,因此十分适用Android新项目。缩小和缓存文件体制能够合理地降低互联网浏览的总流量,在提高速率和节电层面也具有了很大的功效。针对新的应用软件应当更为偏重于应用

HttpURLConnection编码:

 private void checkVersion() {
         final long startTime = System.currentTimeMillis();
         new Thread(new Runnable() {
             @Override
             public void run() {
                 Message msg = mHandler.obtainMessage();
                 HttpURLConnection conn = null;
                 try {
                     URL url = new URL("http://10.0.2.2:8080/update.json");
                     conn = (HttpURLConnection) url.openConnection();
                     conn.setRequestMethod("GET");  //要求方式为GET
                     conn.setConnectTimeout(5000);  //连接请求超时为5秒
                     conn.setReadTimeout(5000);     //载入请求超时为5秒
                     conn.connect();
                     int responseCode = conn.getResponseCode();
                     if ( responseCode == 200 ) {
                         InputStream inputStream = conn.getInputStream();
                         String result = StreamUtils.readFromStream(inputStream);
                         VersionBean versionBean = parseJsonWithGson(result);
                         mVersionName = versionBean.getVersionName();
                         mDescription = versionBean.getDescription();
                         mVersionCode = versionBean.getVersionCode();
                         mDownLoadUrl = versionBean.getDownLoadUrl();
                         LogUtils.e(TAG, mDownLoadUrl);
                         if ( mVersionCode > getAppVersionCode() ) {
                             msg.what = CODE_UPDATE_INFO;
                         } else {
                             msg.what = CODE_GO_HOME;
                         }
                     }
                 } catch ( MalformedURLException e ) {
                     msg.what = CODE_URL_ERROR;
                     e.printStackTrace();
                 } catch ( IOException e ) {
                     msg.what = CODE_NETWORK_ERROR;
                     e.printStackTrace();
                 } finally {
                     long endTime = System.currentTimeMillis();
                     long timeUsed = endTime - startTime;
                     if ( timeUsed < 2000 ) {
                         try {
                             Thread.sleep(2000 - timeUsed);
                         } catch ( InterruptedException e ) {
                             e.printStackTrace();
                         }
                     }
                     mHandler.sendMessage(msg);
                     if ( conn != null ) {
                         conn.disconnect();
                     }
                 }
 
             }
         }).start();
     }
 

    关键字:

天才代写-代写联系方式