后端开发日记-七

      跳槽到今日头条的同事,跟我吐槽了,说在我们公司呆了一年,什么都学不到,用的框架还老,完全是浪费时间。但是作为一个才入职两个月的员工,我觉得我学到的东西蛮多的,也许是我太菜了。但是他跳槽之前做的这个项目,很多坑,已经让我同组的开发人员填坑填了很多天了。其实我觉得吧,不管是现在红的spring boot,还是什么,都是万变不离其宗。把自己现在的学好,学牢固。用认真的态度写好自己份内的代码才是正确的。如果做事的态度不对,到哪里都是挖坑的。

      自己懒了很久,第七周的开发任务,是调用接口。把单据信息推送到服务器端。

      对接口的类型,我需要做一个总结。  

      常见web接口:一类是http协议的接口,另一类是web service接口(如soup、rmi、rpc协议)。

      常见的http请求方式包括:get(查)、post(增),除此之外还有put(改)、delete(删)。

      这两个接口类型,都有用到过。第一个我是被坑惨了,提供接口的人死活不承认自己接口错误,结果我百度了很多关于接口的知识,跟他讲了很多知识点,就把他讲懂了,耽误了很多天。本来一个很简单的事情

       这里有一个疑问,为什么用XMLspy请求得到的返回特殊情况下,和soapui的返回字段会有不一样的地方,这也是坑的地方在。

       REQUESTCONTEXTLOADOMETER loadometer = getSrmPaySecondAuditService().getPayComCodeByKmReviewId(
                            main.getFdId(), main.getFdTemplate().getFdId(), flag);
        RESPONSERESPONSE_HEADER responseRecord = SrmPaySecondAuditInfoGenerator.getInstance()
                            .sendSrmAuditInfoList(loadometer);
        String code = responseRecord.getRESPONSE_RESULT();
        String message = responseRecord.getRESPONSE_MESSAGE();
        String status = responseRecord.getRESPONSE_STATUS();

这是WEB接口的调用,先是新建一个WSDL的document在XMLspy中,在另存为一个wsdl,在eclipse中新建客户端,生成客户端代码,在根据客户端代码去写即可。

     用三个类来完成,第一个是从数据库获取数据,填充在底层的request内容层,返回值是填充的        REQUESTCONTEXTLOADOMETER,在QMS5011Qms_status_comes_backSvc_bindingStub stub = (QMS5011Qms_status_comes_backSvc_bindingStub) locator
                    .getPort(QMS5011Qms_status_comes_backSvc_bindingStub.class);
        REQUESTHEADER header = new REQUESTHEADER(tclSapLogon.getFdUser(), SecureUtil.BASE64Decoder(tclSapLogon
                    .getFdPasswd()));
        REQUESTCONTEXT context = new REQUESTCONTEXT(loadometer);
        REQUEST request = new REQUEST(header, context);
        RESPONSE response = stub.execute(request);

最后再写一个类,来接收内容即可。

 

第二个是http接口,是根据我传入的用户名,返回客户名字和客户代码

String urlString = "地址";
        URL url = null;
        try {
            url = new URL(urlString);
            HttpURLConnection urlConnect = (HttpURLConnection) url.openConnection();
            StringBuffer buffer = new StringBuffer();
            String line;
            Map<String,Object> resultMap=new HashMap<String,Object>();
            BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnect.getInputStream(), "UTF-8"));
            while ((line = reader.readLine()) != null) {
                buffer.append(line);
            }
            JSONObject returnJson=new JSONObject();
            returnJson = JSONObject.fromObject(buffer.toString());
            JSONArray jsonArrayData=new JSONArray();
            jsonArrayData=returnJson.getJSONArray("data");
            resultMap.put("data",jsonArrayData);
            List <JSONObject> dataList=(List<JSONObject>) resultMap.get("data");
            List <String>  customerName=new ArrayList<String>();
            List <String>  customerCode=new ArrayList<String>();
            for(JSONObject a:dataList){
                customerCode.add(a.get("customerCode").toString());
                customerName.add(a.get("customerName").toString());
            }
            for(String b:customerCode){
                System.out.println(b);
            }
            for(String b:customerName){
                System.out.println(b);
            }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值