使用Http服务

Android SDK中提供的HttpClient是一个非常完善的Http客户端,它提供了对Http协议的全面支持,可以使用HTTP GET和HTTP POST。

HttpClient的一般使用如下:

(1)创建一个HttpClient

(2)实例化HTTP方法,比如PostMethod或GetMethod

(3)设置HTTP参数的键值对

(4)使用HttpClient执行HTTP调用

(5)处理HTTP响应

ps:一般使用HttpClient会访问因特网,所以要加上访问网络的权限

 

一.HTTP GET方法:

public void get(){

BufferReader reader = null;

try{

HttpClient client = new DefaultHttpClient();

HttpGet request = new HttpGet();

request.setURI(new URI("http://code.google.com/android/"));

HttpResponse response = client.execute(request);

in = new BufferReader(new InputStreamReader(response.getEntity().getContent()));

 

StringBuffer sb = new StringBuffer("");

String line = "";

String NL = System.getProperty("line.separator");

while(line = in.readLine() != null){

sb.append(line + NL); 

}

 

}catch(IOException e){

}finally{

if(in != null){

try{

in.close();//关闭流,同时也关闭了Http链接

 

}catch(Exception e){

}

}

}

}

ps:GET方式的URL长度应在2048个字符以内.........

 

二.HTTP POST方法

public void post(){

BufferReader reader = null;

try{

HttpClient client = new DefaultHttpClient();

HttpPost request = new HttpPost("http://www.xxxx/xxxx/xxx");

List<NameValuePair> postParametres = new ArrayList<NameValuePair>();

postParametres.add(new BasicNameValuePair("one","valueGoesHere"));

UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParametres );

request.setEntity(formEntity);

HttpResponse response = client.execute(request);

.....................//省略读取

}catch(IOException e){

}

}

实际上HTTP POST的功能比此强大的多,它既可以传递简单的键值对,也可以传递复杂的参数,如文件。HTTP POST支持另一种称为多部分POST的请求主体。使用这种POST类型,你可以发送键值对,也可以发送文件。但是在android SDK中没有提供对这种方式的支持。所以需要Common IO,Mime4j,HttpMime这三个第三方jar包。来使用这种方式

 

三执行多部分POST调用

InputStream in = this.getAssets().open("xxx.xml");

HttpClient client = new DefaultHttpClient();

HttpPost request = new HttpPost("http://www.xxxx/xxxx/xxx");

byte[] data = IOUtils.toByteArray(in);

InputStreamBody isb = new InputStreamBody(new ByteArrayInputStream(data),"uploadFile");

StringBody sb1 = new StringBody("xxxxxxx");

MultipartEntity content = new MultipartEntity();

content .addPart("uploadFile",isb );

content .addPart("one",sb1);

request.setEntity(content );

 

HttpResponse response = client.execute(request);

.....................//省略读取

 

最后总结下,本片文章总结了使用Android Http服务的三种方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值