加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java:简单的SOAP客户端

发布时间:2020-12-14 16:39:50 所属栏目:Java 来源:网络整理
导读:我正在寻找一个用于 Java的SOAP客户端. Apache Axis对我来说看起来很blo肿.我不明白为什么Java必须如此复杂.例如,在PHP中,我所要做的就是: ?php$global_service_wsdl='https://api.betfair.com/global/v3/BFGlobalService.wsdl';$betfair=new SoapClient($g
我正在寻找一个用于 Java的SOAP客户端.

Apache Axis对我来说看起来很blo肿.我不明白为什么Java必须如此复杂.例如,在PHP中,我所要做的就是:

<?php
$global_service_wsdl='https://api.betfair.com/global/v3/BFGlobalService.wsdl';
$betfair=new SoapClient($global_service_wsdl);

$params=array("request"=>
    array("header"=>
         array("clientStamp"=>0,"sessionToken"=>$session_token)),"locale"=>""
);
$response=$betfair->getAllEventTypes($params);
?>

而我的$response对象包含了我所需要的所有信息.

有人可以建议我如何在Java中实现这样的东西,而不用太麻烦?

提前谢谢了,

?编辑1?

@jarnbjo:

这对我来说非常有用.我坚持的一点是,我需要什么导入才能使该代码运行?

我运行了这个命令:
sh wsdl2java.sh -o输出-a -uri https://api.betfair.com/global/v3/BFGlobalService.wsdl

并建立输出.你认为这比PHP快吗?另外,我有一个“异步”选项.这是否意味着我可以进行异步调用?这将是非常有用的.我想在基于Java的Websocket服务器中运行所有这些.

解决方法

除非您需要SOAP API客户端在标准Java API中提供的附加功能,否则可以使用JDK的bin目录中的wsimport工具(指向您的WSDL URL),并为其生成用于服务外观的Java类.

使用生成的类,您需要比您的PHP示例中更多的Java代码来执行请求,但仍然是合理的:

BFGlobalService betfair = new BFGlobalService_Service().getBFGlobalService();

APIRequestHeader header = new APIRequestHeader();
header.setClientStamp(0);
header.setSessionToken("someSessionToken");

GetEventTypesReq req = new GetEventTypesReq();
req.setHeader(header);
req.setLocale("");

GetEventTypesResp response = betfair.getAllEventTypes(req);

此示例失败并显示错误,但可能是因为会话令牌无效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读