C# html编码解码应用

情景
在web API开发的过程中,免不了有些系统比较古老,需要支持调用webservice,并使用xml交互。
在基于MVC5或者net.core的方式实现调用webservice并不是十分友好。
一般我不建议直接采用【引用】-【添加服务引用】-【高级】-【添加web引用】 在Net Framework 自动生成的代码
比较多,并不简洁易懂,但是调用是方便很多。

下面是基于自定义SOAP请求服务

#region 构造soap请求信息 格式参考Raw 返回类型参考Raw
                StringBuilder soap = new StringBuilder();
                // soap.Append("");
                soap.Append("");
                soap.Append("   ");
                soap.Append("   ");
                soap.Append("");
                soap.Append($" {InterfaceNo}");
                soap.Append($" ");
                soap.Append(" ");
                soap.Append("   ");
                soap.Append("");



                //_loggerHelper.Info("RenBaoInsure请求", xml, "RenBaoInsure");
                bll_TGuaranteeInfo_Manual.AddLog(generalInfo.UUID, "请求", Datas, url);
                //返回成功与失败的判断 失败后返回空的ReturnInfo上去
                string result = GetSOAPReSource(url.Replace("?wsdl", ""), soap.ToString());
                //_loggerHelper.Info("RenBaoInsure返回", WebUtility.HtmlDecode(result), "RenBaoInsure");
                bll_TGuaranteeInfo_Manual.AddLog(generalInfo.UUID, "返回", WebUtility.HtmlDecode(result), url);


                XmlDocument doc = new XmlDocument();
                doc.LoadXml(result);
                ReturnInfo returnInfo = (ReturnInfo)XmlUtil.Deserialize(doc.InnerText);

在传递XML给对方系统前我方的XML格式参数【编码前】,对方系统接受并返回结果回来可能属于【编码后】格式。

编码前



  
    cxp49ec8ec93579e340b
    0726
    00
    成功
  
  
    
      49
      Q000E01038
      http://testing.mypicc.com.cn/t/cc/VNBFv2
      
      00
      处理成功
      2019-07-15 16:04:29
      
        
          1
          00
          处理成功
        
      
    
  

编码后

<?xml version="1.0" encoding="GB2312" standalone="yes"?>
<ReturnInfo>
  <GeneralInfoReturn>
    <UUID>cxp49ec8ec93579e340b</UUID>
    <PlateformCode>0726</PlateformCode>
    <ErrorCode>00</ErrorCode>
    <ErrorMessage>成功</ErrorMessage>
  </GeneralInfoReturn>
  <PolicyInfoReturns>
    <PolicyInfoReturn>
      <SerialNo>49</SerialNo>
      <PolicyNo>Q000E01038</PolicyNo>
      <PolicyUrl>http://testing.mypicc.com.cn/t/cc/VNBFv2</PolicyUrl>
      <DownloadUrl><![CDATA[http://ptest.cc.com.cn/ecootion/polinload/dowl.do?platfromcodes=726&policyNo=5BC2E]]></DownloadUrl>
      <SaveResult>00</SaveResult>
      <SaveMessage>处理成功</SaveMessage>
      <SaveTimes>2019-07-15 16:04:29</SaveTimes>
      <InsuredReturns>
        <InsuredReturn>
          <InsuredSeqNo>1</InsuredSeqNo>
          <CheckResult>00</CheckResult>
          <CheckMessage>处理成功</CheckMessage>
        </InsuredReturn>
      </InsuredReturns>
    </PolicyInfoReturn>
  </PolicyInfoReturns>
</ReturnInfo>
                

【编码后】在C#推荐2种方式快速解码
方式一:

using System.Net;

WebUtility.HtmlDecode(“内容”)

方式二:

using System.Xml;

XmlDocument doc = new XmlDocument();
doc.LoadXml(result);
doc.InnerText;

你可能感兴趣的:(C# html编码解码应用)