webservice 返回对象 java_JAVA 调用webservice不同返回值类型的方法
第一种:返回XML
public void XXX(ActionMapping mapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String limitStr = URLDecoder.decode(request.getParameter("limit"),"utf-8");
String offsetStr = URLDecoder.decode(request.getParameter("offset"),"utf-8");
String projectNo = URLDecoder.decode(request.getParameter("projectNo"),"utf-8");
if("null".equals(projectNo))
projectNo="";
int limit= Integer.parseInt(limitStr);
int offset =Integer.parseInt(offsetStr);
String start=String.valueOf((limit-1)*offset+1);
String end=String.valueOf(limit*offset);
//int start=(limit-1)*offset+1;
//int end=limit*offset;
// HttpClientUtil httpClientUtil = new HttpClientUtil();
//Map createMap = new HashMap();
//createMap.put("method", "GetAdviceData");
//createMap.put("start", start);
//createMap.put("end", end);
//createMap.put("projectNo", "");
//
//String returnJson = httpClientUtil.doPost(adviceDataUrl, createMap,
//"UTF-8");
//responseJson.writeJsonToResponse(returnJson,response);
String endpoint = ”XXX.asmx“;
String targetNamespace = "http://tempuri.org/";
//所调用接口的方法method
String method = "XXX";
// 创建一个服务(service)调用(call)
Service service = new Service();
Call call = (Call) service.createCall();// 通过service创建call对象
// 设置service所在URL
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName(targetNamespace, method));
//变量最好只是用String类型,其他类型会报错
call.addParameter(new QName(targetNamespace, "projectNo"),
Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(targetNamespace, "start"),
Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(targetNamespace, "end"),
Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.setUseSOAPAction(true);
//call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型
call.setReturnType( Constants.XSD_STRING);
call.setEncodingStyle(endpoint);
call.setSOAPActionURI(targetNamespace +method);
String jsonString = (String) call.invoke(new Object[] { projectNo,start,end }); //此处为数组,有几个变量传几个变量
JSONObject obj=JSONObject.fromObject(jsonString);
String obj1=obj.getString("Table");
String cnt="0";
if(obj.has("Table1"))
{
String obj2=obj.getString("Table1");
JSONObject objcnt=JSONObject.fromObject(obj2);
cnt=objcnt.getString("number");
}
String json="{\"rows\":"+obj1+","+"\"total\":"+cnt+"}";
responseJson.writeJsonToResponse(json,response);
}
第二种:返回字符串
public static String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
// out = new PrintWriter(conn.getOutputStream());
out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8"));
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream(),"UTF-8"));//流的编码格式
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
return result;
}
// 调用
Stirng url=xxx.asmx/XXX;
string para="";
sendPost(url,para);
webservice 返回对象 java_JAVA 调用webservice不同返回值类型的方法相关推荐
- 关于.net中值类型的方法调用
最近在看关于box和unbox的内存分配问题,发现一旦值类型调用了基类的方法或接口的时候就会发生装箱操作.因为基类型的方法或接口必须通过TypeHandle获得.由此引出了一个问题.若所执行的方法并不 ...
- 使用cxf发布webservice接口,以及调用webservice接口
一.cxf发布webservice接口 添加maven依赖 <dependency><groupId>org.apache.cxf</groupId><art ...
- js php调用webservice,js跨域调用WebService的使用方法
这次给大家带来js跨域调用WebService的使用方法,js跨域调用WebService的注意事项有哪些,下面就是实战案例,一起来看一下. 步骤1. 在web.config中的system.web节 ...
- android调用webservice传参数,android调用webservice接口获取信息
我的有一篇博客上讲了如何基于CXF搭建webservice,service层的接口会被部署到tomcat上,这一篇我就讲一下如何在安卓中调用这些接口传递参数. 1.在lib中放入ksoap2的jar包 ...
- HTTP 调用 WebService、CXF 动态调用 WebService
概述 Web Service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用 ...
- python调用webservice接口实例_python调用webservice接口的实现
使用suds这个第三方模块 from suds.client import Client url = 'http://ip:port/?wsdl' cilent=Client(url) print c ...
- android调用相机返回大图,Android调用相机拍照返回原图
在开始之前,先说下正常调用相机的状况: 正常调用相机,在 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActiv ...
- java的方法返回对象为空_java接口返回为空时候如何处理
java前后端分离以后,后端常常返回给前端以下的内容: 如果遇到某个字段的内容为空的时候会出现这样的情况: 图中红色箭头的情况是一个数组集合,但是该集合为空,所以就返回null,但是我们如果想对于这样 ...
- webservice接口等待时间_调用webservice超时问题的解决
1.web.config配置,里面增加: 2.扩大代理类的超时限制,默认是90秒 YourWebService yws = new YourWebService(); yws.Timeout = ...
最新文章
- 全球99家AI芯片公司,中国占15家!
- sqlserver2012不是有效的安装文件夹_SQL Server 2012软件安装说明
- 机器人学习--电子指南针定位导航
- 【LeetCode】69. Sqrt(x) (2 solutions)
- Python 30年,你对它的核心特性了解多少?
- mysql一对多_mysql一对多查询合并多的一方的数据。
- centos7安装flink集群_《从0到1学习Flink》—— Flink 写入数据到 Kafka
- 图灵测试是什么?为什么AlphaGo那么牛却过不了?
- java url工具_UrlTool官方版|UrlTool (java Url转换工具)下载v1.1-乐游网软件下载
- 光标是停在文本框文字的最后
- pagerank数据集_机器学习十大经典算法-PageRank(附实践代码)
- linux7配置永久路由,CentOS7添加永久静态路由
- Python颜色空间转换(sRGB,AdobeRGB,CIE XYZ,Lab,HSV互转)
- HS系列USB数据采集卡,及高速多通道数据分析软件详解
- 使用阿里字体彩色图标
- 基于Cocos2d-x游戏引擎实战开发超人
- ORB_SLAM2编译build_ros.sh时报错([rosbuild] Error from directory check: /opt/ros/kinetic/share)
- 低温和大风会增加心梗风险
- 运行 c++ 程序出现“Failed to execute ”.exe“ Error 0:操作成功完成
- Appium-Get Handles(获取句柄/多)