- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Http请求及服务器返回解析
android采用post方式获取服务器数据/archives/464
Add a comment?1,597 viewsNovember 11th, 2011?Charlie
android,?http,?json?android http post 请求,?android 解析json
总结android 采用http请求访问网络并获取数据的步骤:
1.发送http请求,并传递相应的参数;
2.获取http返回的状态,根据返回的状态,如404错误,500错误,连接超时,请求异常等,并在界面提示相关状态;
3.web服务器端封装数据并返回一定格式的数据对象,例如封装json对象;
4.http状态返回正常,取出正确的参数并解析,如解析json对象;
5.解析服务器端返回的数据后显示在android相应的控件或存储本地数据,提示操作完成等。
因为习惯使用以上的5个步骤,于是写了一个相对完善的一个处理方法。以下主要是使用post方式获取数据并解析封装的过程,封装json主要有两种封装方法:一种是单个json封装,另一种是带数组的json封装;解析json对应相应的方法。服务器端封装数据的语言采用php封装。get方式请求的方法过程类似。
1.发送服务器的http post请求方法
为了使编写的http post请求具有高度的可重用性,对于传递参数采用类似键值对的数组方式分别传递参数以及参数的值,String []key,String []value就是这样的一个类似键值对的传参方式。key是传递的参数,value是参数对应的值,url则是访问的地址。
HttpPostRequest .java源码:
view plaincopy to clipboardprint?
package?com.httppost.main;??
??
import?java.io.IOException;??
import?java.io.InterruptedIOException;??
import?java.io.UnsupportedEncodingException;??
import?java.util.ArrayList;??
import?java.util.List;??
??
import?org.apache.http.HttpEntity;??
import?org.apache.http.HttpResponse;??
import?org.apache.http.client.ClientProtocolException;??
import?org.apache.http.client.entity.UrlEncodedFormEntity;??
import?org.apache.http.client.methods.HttpPost;??
import?org.apache.http.conn.ConnectTimeoutException;??
import?org.apache.http.impl.client.DefaultHttpClient;??
import?org.apache.http.message.BasicNameValuePair;??
import?org.apache.http.params.HttpConnectionParams;??
import?tocol.HTTP;??
import?org.apache.http.util.EntityUtils;??
??
public?class?HttpPostRequest?{??
??
private?String?webContext;??
//返回请求内容??
public?String?getWebContext()?{??
return?webContext;??
}??
public?void?setWebContext(String?webContext)?{??
this.webContext?=?webContext;??
}??
//该函数返回服务器访问的各种状态,并通过webContext传递获取的文本值??
/**?
*?参数说明?
*?url?访问的网络地址?
*?key?传递参数的名称?
*?value?传递参数的值?
*?key?与value数组长度对应,即一对键值对,这样可以不限制参数传递的个数?
*?*/??
public?int?requestHttp(String?url,String?[]key,String?[]value)?{??
//?TODO?Auto-generated?method?stub??
int?status?=?0;??
DefaultHttpClient?mHttpCli
文档评论(0)