這幾天試着解決的問題有如下幾個:java
1)開發Android的時候打開Eclipse ADT將鼠標移到基礎類的方法上時,不能顯示方法的具體信息,方法解釋。起初不知道這是工具Eclipse的問題,仍是Android的問題。後來百度後又不少熱心而全面的解答,才定位到這原來是Eclipse中關於JavaDoc的設置問題。右擊項目-Property-JavaDoc Location,這裏能夠設置網上的android的javaDoc位置,也能夠設置本身用ADT-SDK Manager 下載的android SDK文件夾下/Doc/References的位置,前提是你必須在SDK Manager下載了「Documentation for Android SDK」,這個我認爲就是SDK 的API,也就是JavaDoc。這樣作之後個人問題就解決了。通過我本身的琢磨,用本身樸素的語言理解就是:JavaDoc就是把SDK API嵌入到工具中,讓其在開發中能自動顯示。個人開發工具中沒有自動顯示出來,直接緣由是開發工具中JavaDoc的位置設置錯誤,其實本質是我沒有下載API文檔。這裏也讓我又漲了姿式,不須要本身去搜索引擎搜索,只須要使用SDK Manager就能下載Android開發的各類官方資源。android
2)Android開發中利用HttpGet或者HttpPost發起網絡請求。曾經也在java開發時用過HttpURLConnection,疑惑他們的關係,大概搜了下,沒有深刻研究,本身理解就是:HttpURLConnection是java原生的網絡訪問的類,操做比較繁瑣可是足夠靈活;Http.Client(HttpGet和HttpPost的長輩類)是Android封裝了Java中的一些類所開發出的開源框架,使用簡單。api
如今我開發的問題倒不是上面的問題,而是怎樣對請求參數編碼轉換?HttpGet和HttpPost又是如何對各自的請求參數進行編碼轉換的?我如今解決問題的方式應該是不求甚解型,就是大概知道爲何這樣,可是再追求下去,問到源碼之類的,我就不清楚了。至於爲何要對請求編碼,是由於在請求中,請求參數中的空格會被轉成+,除了數字字母和 . _ - 之外的符號和中文字符會被轉正%XX,XX爲其十六進制表示。請求方法以下:服務器
GET
網絡
HttpClient hc=null; HttpGet hg=null; String baseUrl="http://192.168.15.88:8000/api/cms/poi/poisearch.do"; List<BasicNameValuePair> params=new ArrayList<BasicNameValuePair>(); params.add(new BasicNameValuePair("name","Lucy")); params.add(new BasicNameValuePair("grades","89")); String paramsUrl=URLEncodedUtils.format(params, HTTP.UTF_8); hg=new HttpGet(baseUrl+paramsUrl); hc=new DefaultHttpClient(); HttpResponse hr=null; String result=null; try { hr=hc.execute(hg); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(hr.getStatusLine().getStatusCode()==200){ try { result=EntityUtils.toString(hr.getEntity()); //能夠獲取字符串,也能夠獲取字節。這裏獲取字符串 } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
服務器不要求請求轉碼的時候也能夠不對URL編碼,這個時候URL能夠直接用字符串拼接的方式獲得,即baseUrl=baseUrl+"?name="+name+"&age="+age;
框架
POST工具
HttpClient hc=null; HttpPost hp=null; String baseUrl="http://192.168.15.88:8000/api/cms/poi/poisearch.do"; List<BasicNameValuePair> params=new ArrayList<BasicNameValuePair>(); params.add(new BasicNameValuePair("name","Lucy")); params.add(new BasicNameValuePair("grades","89")); hp=new HttpPost(baseUrl); try { hp.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8)); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } hc=new DefaultHttpClient(); HttpResponse hr=null; String result=null; try { hr=hc.execute(hp); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(hr.getStatusLine().getStatusCode()==200){ try { result=EntityUtils.toString(hr.getEntity()); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
寫的都很粗略,由於暫時開發水平才入門,因此請看官多多指教。
開發工具