这几天试着解决的问题有如下几个: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(); } }
写的都很粗略,由于暂时开发水平才入门,因此请看官多多指教。
开发工具