android无法显示object标签,JavaDoc不显示 &Android中HttpGet和HttpPost &JSONObject

这几天试着解决的问题有以下几个:

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开发的各种官方资源。

2)Android开发中利用HttpGet或者HttpPost发起网络请求。曾经也在java开发时用过HttpURLConnection,疑惑他们的关系,大概搜了下,没有深入研究,自己理解就是:HttpURLConnection是java原生的网络访问的类,操作比较繁琐但是足够灵活;Http.Client(HttpGet和HttpPost的长辈类)是Android封装了Java中的一些类所开发出的开源框架,使用简单。

现在我开发的问题倒不是上面的问题,而是怎样对请求参数编码转换?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 params=new ArrayList();

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 params=new ArrayList();

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();

}

}

写的都很粗略,因为暂时开发水平才入门,所以请看官多多指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值