1. 程式人生 > >Android端呼叫java

Android端呼叫java

一、準備一個java端的程式

二、通過httpclient呼叫java端。

1.簡介httpclient

   httpclient 是 Apache Jakarta Common下的子專案,用來提供高效的、最新的、功能豐富的支援HTTP協議的客戶端程式設計工具包,並且它支援HTTP協議最新的版本和協議。 HtppClient來提交請求、接收響應。在API 23中,Google已經移除了移除了Apache HttpClient相關的類 ,在Android中要在build.gradle中的android {}中加上useLibrary 'org.apache.http.legacy',寫好之後要同步 Sync show.

2.使用httpclient

    2.1建立httpclient物件 HttpClient httpClient = new DefaultHttpClient();

    2.2建立get或post物件

         HttpGet HttpGet = new HttpGet("http://www.baidu.com");          HttpPost httpPost = new HttpPost("http://www.baidu.com"

    2.3新增引數,有三種方式,可選一種

        第一: setParams(HttpParams params)//HttpGet和HttpPost共有         第二:setEntity(HttpEntity entity)//HttpPost獨有

        第三種:?傳參 

    2.4傳送個或post請求,做出響應。

三、將java串轉成物件

 ObjectMapper om = new ObjectMapper();
     try {
           Map map = om.readValue(json, Map.class);
           Log.i("server:",map.get("total").toString());
           Log.i("server:",map.get("rows").getClass().getName());
          } catch (IOException e) {
              e.printStackTrace();
             }

注意:

1. 如果地址錯誤,或伺服器未開戶,HttpClient這SB會等待N久(>24小時)。 所以請記得設定超時時間,所以請記得設定超時時間,所以請記得設定超時時間

2.需要新增允許網路訪問許可權,不然會報錯“java.lang.SecurityException: Permission denied (missing INTERNET permission?)”            <uses-permission android:name="android.permission.INTERNET" />  。在manifests 下,找到 AndroidManifest.xml 檔案寫入<uses-permission android:name="android.permission.INTERNET" />即可。

3.HttpUriRequest為HttpGet和HttpPost的父類

4. 檢查ip地址:    啟動的android模擬器吧自己也當成127.0.0.1和localhost,如果使用了localhost或者127.0.0.1則會被拒絕訪問