zoukankan      html  css  js  c++  java
  • soap使用xml调用webapi后返回xml信息进行JSON转换处理,以顺丰查询接口为例

     expressUrl = string.Format(可以卸载配置文件的域名URL + "/bsp-oisp/ws/expressService");
                        StringBuilder sbParams = new StringBuilder();
                        sbParams.AppendLine("<Request service='RouteService' lang='zh-CN'>");
                        sbParams.AppendLine("<Head>");
                        sbParams.AppendLine(这里是顺丰提供的客户秘钥);
                        sbParams.AppendLine("</Head>");
                        sbParams.AppendLine("<Body>");
                        sbParams.AppendLine("<RouteRequest tracking_type='1' method_type='1' tracking_number='" + 运单号 + "'/>");
                        sbParams.AppendLine("</Body>");
                        sbParams.AppendLine("</Request>");
    
                        SFexpressService.ServiceClient sfService = new SFexpressService.ServiceClient();
                        //调用顺丰的webapi接口
                        expressResult = sfService.sfexpressService(sbParams.ToString());
    
                        XmlDocument doc = new XmlDocument();
                        doc.LoadXml(expressResult);
                        //这里把xml转换成JSON,但是直接SerializeXmlNode调用这个方法就会导致很多属性中存在@符号,网上找到的方案是正则替换
                        expressResult = Regex.Replace(JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.None), "(?<=")(@)(?!.*":\s )", string.Empty, RegexOptions.IgnoreCase);
                        //这里是正则替换的结果怕属性值?xml有问题,再替换成一个自己定义的值
                        expressResult = expressResult.Replace("?xml","expressXml");
  • 相关阅读:
    linux笔记
    初探hook的键盘获取
    python pyHook安装
    转: ZigBee/Z-Stack CC2530实现低功耗运行的配置简介
    三种zigbee网络架构详解
    adc verilog spi 时序
    dac verilog ad5601
    verilog 三段式状态机的技巧
    fpga 状态机 检测1011序列
    lattice diamond fpga 状态机的理解
  • 原文地址:https://www.cnblogs.com/llcdbk/p/9815042.html
Copyright © 2011-2022 走看看