博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过HttpClient请求webService
阅读量:7235 次
发布时间:2019-06-29

本文共 2362 字,大约阅读时间需要 7 分钟。

  hot3.png

通过HttpClient请求webService 

由于服务端是用webService开发的,android要调用webService服务获取数据,这里采用的是通过HttpClient发送post请求,获取webService数据。
 
服务端使用的webService框架是axis2,请求数据之前,要封装一个xml格式,再通过post请求,获取服务端数据。

请求的xml格式如下所示: 

sunlightcs

其中:getUserInfo是方法名,userName是参数名,当然,还可以加多个参数。

如果需要SOAP Header需要添加审核信息,如用户名密码验证,可在<soap:Header/>节点添加数据:

user
pwd

下面的代码是向webService发送请求,获取数据,返回的数据是xml形式的,android只要解析xml数据,就可以获得想要的数据了。  

import java.io.IOException;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.Writer; import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.ContentProducer;import org.apache.http.entity.EntityTemplate;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;  public class ClientTest {	 	public static void main(String[] args) {		ClientTest.httpClientPost();	}	 	private static void httpClientPost() {		HttpClient client = new DefaultHttpClient();		HttpPost post = newHttpPost("http://localhost:8080/xxx/services/userService");		try {			ContentProducer cp = new ContentProducer() {				public void writeTo(OutputStream outstream) throwsIOException {					Writer writer = new OutputStreamWriter(outstream,"UTF-8");					 					/**					 * 获取请求的xml格式数据					 */					String requestXml = getRequestXml();					writer.write(requestXml);					writer.flush();				}			}; 			post.setEntity(new EntityTemplate(cp));			HttpResponse response = client.execute(post);			 		//打印返回的xml数据			System.out.println(EntityUtils.toString(response.getEntity()));		} catch (IOException e) {			e.printStackTrace();		}	}	 	 	private static String getRequestXml(){		StringBuilder sb = new StringBuilder("
"); sb.append("
"); sb.append("
"); sb.append("
"); sb.append("
sunlightcs
"); sb.append("
"); sb.append("
"); sb.append("
"); return sb.toString(); } }

返回的数据格式如下:  

xxx

其中,<ns:return>内的"xxx"可以是json数据,android只需解析标签<ns:return>里的json数据即可。 
转载 http://www.juziku.com/wiki/3919.htm

转载于:https://my.oschina.net/boltwu/blog/416205

你可能感兴趣的文章
c# 串口问题
查看>>
低配置电脑播放 flash 视频时 占 cpu 资源过高的解决方法
查看>>
linux下ssh/sftp配置和权限设置
查看>>
js面向对象编程两个主要点
查看>>
Xml通用操作类
查看>>
CSS常见以及解决兼容办法
查看>>
含参数的二次不等式的解法【中级和高阶辅导】
查看>>
Windows Phone 8初学者开发—第9部分:Windows Phone 8模拟器概述
查看>>
Alpha冲刺——day6
查看>>
利用border-radious画图形
查看>>
Java并发编程(二)同步
查看>>
linux下top命令查看cpu占用情况
查看>>
jenkins+maven+junit构建自动化测试,整合junit xml生成直观的测试报告[留存]
查看>>
ol,ul,dl,table标签的基本语法
查看>>
bzoj4197
查看>>
JSOI2015 Round1——完挂
查看>>
又是每周作业~4.1
查看>>
理解项目编辑器---part1:创建项目编辑器
查看>>
ios开发之--编码及命名规范
查看>>
搜索学习资源
查看>>