急求一个调用web service的方法

zcywell 2010-04-02 10:15:12
本人急求一个用java 编写的调用web service的方法
要求:调用web service的函数,取出其中的数据
...全文
388 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinlan1022 2010-04-02
  • 打赏
  • 举报
回复
https://api.channeladvisor.com/ChannelAdvisorAPI/s1/OrderService.asmx把你访问这个地址的xml文件发出来,上面给你的代码参数是从这个xml里取的
zcywell 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xinlan1022 的回复:]
Java code
String url = "http://srv.mofun.cc/webservice/webservice.dll/soap/IWeather";
Service service = new Service();
Call call = (Call) service.cre……
[/Quote]

对于上面的大虾,本人相当的感激,只是本人以前没有接触过),所以对于里面的参数意思不是很明白,请劳烦各位大虾再解释一下:
call.setOperationName("qqCheckOnline"); 这里面的qqCheckOnline是什么意思;
call.addParameter(new javax.xml.namespace.QName(
"http://WebXml.com.cn/", "qqCode")
http://WebXml.com.cn/", "qqCode"的意思
call.setSOAPActionURI("http://WebXml.com.cn/qqCheckOnline");http://WebXml.com.cn/qqCheckOnline的意思

call.setOperationName(new javax.xml.namespace.QName(
"http://WebXml.com.cn/", "qqCheckOnline"));"http://WebXml.com.cn/", "qqCheckOnline的意思
String k = (String) call.invoke(new Object[] { "12345678" });12345678的意思
也许问题很简单,请大家不要见笑,这关系到本人的工作,谢谢了


看了一下,还是有点不明白,主要是时间太紧迫了,我们公司的老板然我们获取web service上的订单,url
为https://api.channeladvisor.com/ChannelAdvisorAPI/s1/OrderService.asmx,老板给了几个参数,即Developer Password:qU9AgahE
> Account: efashngirl-UK ID: 3d2a4b1c-8f0d-4aa4-91bd-8db25f184b12
> Developer: Dixia Shi - Canada Garment Company, ID: 0c35c7e0-3d42-4671-b033-2c28d3a3d393,我应该怎样设置这些参数来获取web service 的订单数据呢,先谢谢各位好心的大虾了
soli11722984 2010-04-02
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080425/00/33A47C75-07D4-49E0-9628-BE23554AB142.html
看这帖的3楼,要不下个AXIS或者CXF之类的框架
zcywell 2010-04-02
  • 打赏
  • 举报
回复
现在时间不够用啊,请大虾指点一下了,帮忙写一下。。。。
老马哥V 2010-04-02
  • 打赏
  • 举报
回复
可以使用jbuilder的webservices工具 import url 生成客户调用包
zcywell 2010-04-02
  • 打赏
  • 举报
回复
看了一下,还是有点不明白,主要是时间太紧迫了,我们公司的老板然我们获取web service上的订单,url
为https://api.channeladvisor.com/ChannelAdvisorAPI/s1/OrderService.asmx,老板给了几个参数,即Developer Password:qU9AgahE
> Account: efashngirl-UK ID: 3d2a4b1c-8f0d-4aa4-91bd-8db25f184b12
> Developer: Dixia Shi - Canada Garment Company, ID: 0c35c7e0-3d42-4671-b033-2c28d3a3d393,我应该怎样设置这些参数来获取web service 的订单数据呢,先谢谢各位好心的大虾了
soli11722984 2010-04-02
  • 打赏
  • 举报
回复
call.setOperationName("qqCheckOnline");qqCheckOnline可以理解为方法名
http://WebXml.com.cn/ 应该是对应的命名空间
qqCode QQ号码,这个应该说明文档给出
http://WebXml.com.cn/qqCheckOnline 这个是在WSDL里面的一个动作定义

LZ看看这个
http://topic.csdn.net/u/20080425/00/33A47C75-07D4-49E0-9628-BE23554AB142.html
zcywell 2010-04-02
  • 打赏
  • 举报
回复
对于上面的大虾,本人相当的感激,只是本人以前没有接触过),所以对于里面的参数意思不是很明白,请劳烦各位大虾再解释一下:
call.setOperationName("qqCheckOnline"); 这里面的qqCheckOnline是什么意思;
call.addParameter(new javax.xml.namespace.QName(
"http://WebXml.com.cn/", "qqCode")
http://WebXml.com.cn/", "qqCode"的意思
call.setSOAPActionURI("http://WebXml.com.cn/qqCheckOnline");http://WebXml.com.cn/qqCheckOnline的意思

call.setOperationName(new javax.xml.namespace.QName(
"http://WebXml.com.cn/", "qqCheckOnline"));"http://WebXml.com.cn/", "qqCheckOnline的意思
String k = (String) call.invoke(new Object[] { "12345678" });12345678的意思
也许问题很简单,请大家不要见笑,这关系到本人的工作,谢谢了
  • 打赏
  • 举报
回复

import java.net.MalformedURLException;
import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

public class T {
public static void main(String[] args) {
String endpoint = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl";
// 输入参数:QQ号码 String,默认QQ号码:xxxxxx。
// 返回数据:String,Y = 在线;N = 离线;E = QQ号码错误;A = 商业用户验证失败;V = 免费用户超过数量
Service service = new Service();
Call call;
try {
call = (Call) service.createCall();

call.setTargetEndpointAddress(new java.net.URL(endpoint));// 为Call设置服务的位置

// 设置要调用的方法
// call.setOperationName( new QName( "http://WebXml.com.cn/" ,
// "qqCheckOnline" ));
call.setOperationName("qqCheckOnline");
call.addParameter(new javax.xml.namespace.QName(
"http://WebXml.com.cn/", "qqCode"),
org.apache.axis.encoding.XMLType.XSD_STRING, String.class,
javax.xml.rpc.ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);// 设置返回类型

// call.setReturnClass(String.class);
// 这个地方没设对就会出现Server was unable to read request的错误

// 如果.net在提供Rpc服务时设置成
// [SoapRpcMethod(Action = "",.....的话,那java客户端连
// call.setUseSOAPAction(true);
// call.setSOAPActionURI(soapActionURI);
// 2句都可以去掉了

call.setUseSOAPAction(true);
call.setSOAPActionURI("http://WebXml.com.cn/qqCheckOnline");

// http://WebXml.com.cn/ 命名空间
call.setOperationName(new javax.xml.namespace.QName(
"http://WebXml.com.cn/", "qqCheckOnline"));

String k = (String) call.invoke(new Object[] { "12345678" });
System.out.println("result is " + k.toString() + ".");

} catch (ServiceException e) {
// TODO
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO
e.printStackTrace();
} catch (RemoteException e) {
// TODO
e.printStackTrace();
}

}

}

xinlan1022 2010-04-02
  • 打赏
  • 举报
回复
                        String url = "http://srv.mofun.cc/webservice/webservice.dll/soap/IWeather";
Service service = new Service();
Call call = (Call) service.createCall();
call.setOperationName(new QName("http://tempuri.org/",
"GetWeather"));

call.addParameter(new QName("http://tempuri.org/",
"CityNameOrCityNumber"), XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);

//call.sets
call.setSOAPActionURI("urn:WeatherIntf-IWeather#GetWeather");

call.setTargetEndpointAddress(new URL(url));
call.setReturnType(XMLType.SOAP_VECTOR);
Vector<String> res = (Vector<String>) call.invoke(new Object[]{"鸡西"});

for (String str : res)
{

System.out.println(str);

}
justchenjie 2010-04-02
  • 打赏
  • 举报
回复
http://e-ville.javaeye.com/blog/285323,你看看,获取动态数据添加数据库就行了
zcywell 2010-04-02
  • 打赏
  • 举报
回复
把源码贴过来,重谢!
zcywell 2010-04-02
  • 打赏
  • 举报
回复
package com;

import java.net.URL;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;


public class Client {

public static void main(String[] args)throws Exception{

Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new URL("https://api.channeladvisor.com/ChannelAdvisorAPI/v1/OrderService.asmx?WSDL"));

//设定了将要invoke webservice的方法

call.setOperationName("SubmitAmazonFullRefund");
call.setReturnType(XMLType.XSD_STRING);

//调用webservice的method,并得到了webservice的response data放到result当中

// String result = (String)call.invoke(new String[]{"orderID"});
String result = (String)call.invoke(new Object[]{});
//在client print

// System.out.println(result);

}

}

zcywell 2010-04-02
  • 打赏
  • 举报
回复
这个不重要,你给我调用其中的一个方法,给我作一个例子就可以了,谢谢了
zcywell 2010-04-02
  • 打赏
  • 举报
回复
这个不重要,你给我调用其中的一个方法,给我作一个例子就可以了,谢谢了
xinlan1022 2010-04-02
  • 打赏
  • 举报
回复
里面有很多方法,你要的东西调哪个方法还知道啊?
zcywell 2010-04-02
  • 打赏
  • 举报
回复
https://api.channeladvisor.com/ChannelAdvisorAPI/v1/OrderService.asmx?WSDL
上面的大虾,劳烦给我写一下这个程序,感谢。。。。。。。
soli11722984 2010-04-02
  • 打赏
  • 举报
回复
如果JDK6的话,在D盘建立一个文件夹,叫ws,里面还有文件夹src和bin
然后在DOS下输入wsimport -extension -s d:/ws/src -b d:/ws/bin https://api.channeladvisor.com/ChannelAdvisorAPI/v1/OrderService.asmx?WSDL

然后就生成一大堆文件,这些就是客户端文件,之后要靠文档或者说明来调用相应的方法,不过这是用JDK6自带生成的,可能兼容上会出问题,最后搞个AXIS,不过那个偶不太会
zcywell 2010-04-02
  • 打赏
  • 举报
回复
https://api.channeladvisor.com/ChannelAdvisorAPI/v1/OrderService.asmx?WSDL,刚才的那个错了,你用这个试一下
soli11722984 2010-04-02
  • 打赏
  • 举报
回复
这个XML帖全点啊,还有很多信息没帖出来
而且我这访问不了https://api.channeladvisor.com/ChannelAdvisorAPI/s1/OrderService.asmx
加载更多回复(1)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧