请求WebService接口_渣渣工作记录20201119

需求:web项目下要新增一个定时发短信功能,客户方给提供了一个WebService短信接口。

1、如何请求WebService短信接口?

最快速还不会出很大技术问题的方式:就是根据接口文档中提供wsdl链接,进入到链接,将链接页面以wsdl保存到本地,然后在项目中生成客户端代码。

2、这样的好处:可以直接创建对象,然后调用你需要的方法。

3、步骤:Eclipse中,项目右击New->Web Service Client->Service definition:选择你保存到本地的wsdl文件->Finish(还待亲测,因为客户给提供的WebService短信接口中有一个接口样例,我是直接把示例的src下的package直接复制一份到我的web项目的src下面的。)

4、可能需要的jar包:axis.jar、axis-ant.jar、commons-discovery-0.2.jar、commons-logging-1.0.4.jar、jaxrpc.jar、log4j-1.2.8.jar、saaj.jar、wsdl4j-1.5.1.jar(样例中给的,我也是直接拿到我的lib文件夹中的,你是否需要就要具体问题具体分析)

5、推荐一个下载jar包的好地方:搜索Maven仓库

6、踩的坑:刚开始我企图在网上找到一个请求webservice接口的方法,看网上说是RPC方式,我没试成功,需要一堆的axis2.jar包,奇奇怪怪的错误,大多是缺少jar包导致的。(代码如下,或许可行吧,只是我比较菜,没解决)

public class MessageClient {
     
    public void sendMessage(String json) {
        
        try {
            String url = "http://IP地址:端口号/***/***/Sms***";
            String method = "sendSms";
            Object[] requestParam = new Object[] {json};
            RPCServiceClient serviceClient = new RPCServiceClient();
            
            //1、指定调用的WebService的URL
            EndpointReference target = new EndpointReference(url);
            
            Options options = serviceClient.getOptions();
            options.setTo(target);
            options.setProperty(HTTPConstants.CHUNKED, false);
            
            //2、指定方法返回值的数据类型的Class对象
            Class[] responseParam = new Class[] {String.class};
            
            //3、指定要调用的方法及WSDL文件的命名空间
            QName requestMethod = new QName("http://sendmessage.com",method);
            
            //4、调用方法并输出该方法的返回值
            String result = (String)serviceClient.invokeBlocking(requestMethod, requestParam, responseParam)[0];
            System.out.println(result);//返回的xml
            
            //5、将返回值JSON字符串转为JSON对象
            JSONObject rsObject = JSONObject.fromObject(result);
            
            if(rsObject.getInt("errMsg") < 0) {
                ARE.getLog(this.getClass()).info("手机号:"+rsObject.getJSONObject("sendResMsg").getString("Phone")+"的用户,短信发送失败");
            
            }else {
                ARE.getLog(this.getClass()).info("手机号:"+rsObject.getJSONObject("sendResMsg").getString("Phone")+"的用户,短信发送成功");
                
            }            
            
        } catch (AxisFault e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            ARE.getLog(this.getClass()).debug("短信发送异常");
        }
        
    }*/
    
    
    
    
    
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值