SAP调用外围系统提供的Webservice生成代理类失败,但是SoapUI测试是联通的,该如何处理?


前言

最近接到一个接口需求,外围系统提供了一个Webservice,SAP生成代理类失败,但是使用SoapUI测试的时候,接口正常并成功返回了消息>.<

最后发现是由于SAP不支持解析这种类型的Webservice,只能在SAP中直接Post Webservice,完成接口对接。

具体步骤如下:

1.先使用SoapUI,解析Webservice,查看相关类的报文

在这里插入图片描述
报文如下:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soa="http://soa.poba.com">
   <soapenv:Header/>
   <soapenv:Body>
      <soa:GK_getServiceByCode soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <authorizationCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">?</authorizationCode>
         <serviceCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">?</serviceCode>
         <datajson xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">?</datajson>
      </soa:GK_getServiceByCode>
   </soapenv:Body>
</soapenv:Envelope>

2.解析报文、拼装

我们需要在程序里,对比1中解析的报文,进行拼装
在这里插入图片描述

3.对地址进行Post

如下代码:

*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(IV_URL)
*"     VALUE(IT_FIELDS) TYPE  TIHTTPNVP OPTIONAL
*"     VALUE(IV_CONTENT_TYPE) OPTIONAL
*"     VALUE(IV_DATA) OPTIONAL
*"  EXPORTING
*"     REFERENCE(EV_RESPONSE)
*"     REFERENCE(EV_RESPONSE_X)
*"     REFERENCE(EV_MTYPE)
*"     REFERENCE(EV_MESSAGE)
*"----------------------------------------------------------------------
  DATA:
    lo_http_client  TYPE REF TO if_http_client,
    lv_host         TYPE string,
    lv_port         TYPE string,
    lv_uri          TYPE string,
    lv_content_type TYPE string,
    lv_data         TYPE string.

  CLEAR: ev_response, ev_response_x, ev_mtype, ev_message.

* URL地址
  lv_uri = iv_url.
  IF lv_uri IS INITIAL.
    ev_mtype = 'E'.
    ev_message = 'Http请求地址不能为空'.
    RETURN.
  ENDIF.

* 解析请求的主机地址和端口
  CLEAR: lv_host, lv_port.
  CALL FUNCTION 'SWLWP_URI_PARSE'
    EXPORTING
      uri         = lv_uri
    IMPORTING
      host        = lv_host
      port        = lv_port
    EXCEPTIONS
      uri_no_path = 1
      OTHERS      = 2.
  IF sy-subrc <> 0.
    ev_mtype = 'E'.
    ev_message = '解析Http请求地址错误'.
    RETURN.
  ENDIF.

* 创建Http实例
  CLEAR: lo_http_client.
  CALL METHOD cl_http_client=>create
    EXPORTING
      host               = lv_host
      service            = lv_port
    IMPORTING
      client             = lo_http_client
    EXCEPTIONS
      argument_not_found = 1
      plugin_not_active  = 2
      internal_error     = 3
      OTHERS             = 4.
  IF sy-subrc <> 0.
    ev_mtype = 'E'.
    ev_message = '创建Http请求失败'.
    RETURN.
  ENDIF.

* 设置请求的URL地址
  CALL METHOD cl_http_utility=>set_request_uri
    EXPORTING
      request = lo_http_client->request
      uri     = lv_uri.

* 设置Post方法
  CALL METHOD lo_http_client->request->set_method
    EXPORTING
      method = if_http_entity=>co_request_method_post.

* 设置请求内容类型
  IF iv_content_type IS NOT INITIAL.
    lv_content_type = iv_content_type.
    CALL METHOD lo_http_client->request->set_content_type
      EXPORTING
        content_type = lv_content_type.
  ENDIF.

* 设置字段
  lo_http_client->request->set_header_fields( fields = it_fields ).

* 设置请求内容
  IF iv_data IS NOT INITIAL.
    lv_data = iv_data.
    CALL METHOD lo_http_client->request->set_cdata
      EXPORTING
        data = lv_data.
  ENDIF.

* 发送Http请求
  CALL METHOD lo_http_client->send
    EXCEPTIONS
      http_communication_failure = 1
      http_invalid_state         = 2.
  IF sy-subrc <> 0.
    ev_mtype = 'E'.
    ev_message = '发送Http请求失败'.
    RETURN.
  ENDIF.

* 接收返回消息
  CALL METHOD lo_http_client->receive
    EXCEPTIONS
      http_communication_failure = 1
      http_invalid_state         = 2
      http_processing_failed     = 3.
  IF sy-subrc <> 0.
    ev_mtype = 'E'.
    ev_message = '获取Http返回失败'.
    RETURN.
  ENDIF.

  ev_mtype = 'S'.
  ev_message = 'Http请求成功'.

* 返回正文
  IF ev_response IS SUPPLIED.
    DATA(lv_response) = lo_http_client->response->get_cdata( ).
    ev_response = lv_response.
  ENDIF.

  IF ev_response_x IS SUPPLIED.
    DATA(lv_response_x) = lo_http_client->response->get_data( ).
    ev_response_x = lv_response_x.
  ENDIF.

4.使用正则表达式返回解析结果

  lv_regex = '<GK_getServiceByCodeReturn.*>(.*)</GK_getServiceByCodeReturn>'.
  FIND REGEX lv_regex IN lv_response SUBMATCHES lv_data.

返回结果由于是Json格式,在SAP解析中会存在一些乱码,需要在SAP中转换:)

*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(IV_ESCAPED)
*"  EXPORTING
*"     REFERENCE(EV_UNESCAPED)
*"----------------------------------------------------------------------

  DEFINE unescape_amp.
* &1: &. . .
* &2: Integer of the unicode symbol
* &.. within the
    CONCATENATE '*' &1 '*' INTO l_pattern.                  "#EC NOTEXT
    IF ev_unescaped CP l_pattern.
      TRY.
          l_replace = cl_abap_conv_in_ce=>uccpi( &2 ).
        CATCH cx_root.
          l_replace = '#'.                                  "#EC NOTEXT
      ENDTRY.
      REPLACE ALL OCCURRENCES OF &1 IN ev_unescaped WITH l_replace.
    ENDIF.
  END-OF-DEFINITION.                                        "#EC NOTEXT

  DEFINE unescape_hex.

  END-OF-DEFINITION.

* Replace all "<>&
  ev_unescaped = iv_escaped.

  CHECK ev_unescaped CA '&' AND ev_unescaped CA ';'.        "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT

* Unescape the essential thing
  REPLACE ALL OCCURRENCES OF '&quot;'   IN ev_unescaped WITH '"'. "#EC NOTEXT
  REPLACE ALL OCCURRENCES OF '&lt;'     IN ev_unescaped WITH '<'. "#EC NOTEXT
  REPLACE ALL OCCURRENCES OF '&gt;'     IN ev_unescaped WITH '>'. "#EC NOTEXT
  REPLACE ALL OCCURRENCES OF '&amp;'    IN ev_unescaped WITH '&'. "#EC NOTEXT
  REPLACE ALL OCCURRENCES OF '&euro;'   IN ev_unescaped WITH '€'. "#EC *
  REPLACE ALL OCCURRENCES OF '&dagger;' IN ev_unescaped WITH '#'. "#EC *
  REPLACE ALL OCCURRENCES OF '&Dagger;' IN ev_unescaped WITH '#'. "#EC *

  DATA:
    l_pattern TYPE string,
    l_replace TYPE string.

* Escape the &#number;
  IF ev_unescaped CS '&#x'.                                 "#EC NOTEXT
    DATA:
      l_start   TYPE i,
      l_i       TYPE i,
      l_length  TYPE i,
      l_content TYPE string,
      l_xstring TYPE xstring.
    l_start = 1.
    DO.
      SEARCH ev_unescaped FOR '&#x' IN CHARACTER MODE STARTING AT l_start. "#EC NOTEXT
      IF sy-subrc = 0.
        l_start = l_start + sy-fdpos.
        SEARCH ev_unescaped FOR ';' IN CHARACTER MODE STARTING AT l_start. "#EC NOTEXT
        IF sy-subrc = 0.
          SUBTRACT 1 FROM l_start.
          l_length = sy-fdpos + 1.
          l_pattern = ev_unescaped+l_start(l_length).
          ADD 3 TO l_start.
          l_length = sy-fdpos - 3.
          l_content = ev_unescaped+l_start(l_length).
          IF l_content CO ' 0123456789ABCDEF'.              "#EC NOTEXT
            l_xstring = l_content.
            MOVE l_xstring TO l_i.
            TRY.
                l_replace = cl_abap_conv_in_ce=>uccpi( l_i ).
              CATCH cx_root.
                l_replace = '#'.
            ENDTRY.
            REPLACE ALL OCCURRENCES OF l_pattern IN ev_unescaped WITH l_replace.
            SUBTRACT 2 FROM l_start.
          ENDIF.
        ELSE.
          EXIT.
        ENDIF.
      ELSE.
        EXIT.
      ENDIF.
    ENDDO.
  ENDIF.

* Escape the &#number;
  IF ev_unescaped CS '&#'.                                  "#EC NOTEXT
    l_start = 1.
    DO.
      SEARCH ev_unescaped FOR '&#' IN CHARACTER MODE STARTING AT l_start. "#EC NOTEXT
      IF sy-subrc = 0.
        l_start = l_start + sy-fdpos.
        SEARCH ev_unescaped FOR ';' IN CHARACTER MODE STARTING AT l_start. "#EC NOTEXT
        IF sy-subrc = 0.
          SUBTRACT 1 FROM l_start.
          l_length = sy-fdpos + 1.
          l_pattern = ev_unescaped+l_start(l_length).
          ADD 2 TO l_start.
          l_length = sy-fdpos - 2.
          l_content = ev_unescaped+l_start(l_length).
          IF l_content CO ' 0123456789'.                    "#EC NOTEXT
            l_i = l_content.
            TRY.
                l_replace = cl_abap_conv_in_ce=>uccpi( l_i ).
              CATCH cx_root.
                l_replace = '#'.
            ENDTRY.
            REPLACE ALL OCCURRENCES OF l_pattern IN ev_unescaped WITH l_replace.
          ENDIF.
        ELSE.
          EXIT.
        ENDIF.
      ELSE.
        EXIT.
      ENDIF.
    ENDDO.
  ENDIF.

  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&nbsp;' 160.                                "#EC NOTEXT
  unescape_amp '&iexcl;' 161.                               "#EC NOTEXT
  unescape_amp '&cent;' 162.                                "#EC NOTEXT
  unescape_amp '&pound;' 163.                               "#EC NOTEXT
  unescape_amp '&curren;' 164.                              "#EC NOTEXT
  unescape_amp '&yen;' 165.                                 "#EC NOTEXT
  unescape_amp '&brvbar;' 166.                              "#EC NOTEXT
  unescape_amp '&sect;' 167.                                "#EC NOTEXT
  unescape_amp '&uml;' 168.                                 "#EC NOTEXT
  unescape_amp '&copy;' 169.                                "#EC NOTEXT
  unescape_amp '&ordf;' 170.                                "#EC NOTEXT
  unescape_amp '&laquo;' 171.                               "#EC NOTEXT
  unescape_amp '&not;' 172.                                 "#EC NOTEXT
  unescape_amp '&shy;' 173.                                 "#EC NOTEXT
  unescape_amp '&reg;' 174.                                 "#EC NOTEXT
  unescape_amp '&macr;' 175.                                "#EC NOTEXT
  unescape_amp '&deg;' 176.                                 "#EC NOTEXT
  unescape_amp '&plusmn;' 177.                              "#EC NOTEXT
  unescape_amp '&sup2;' 178.                                "#EC NOTEXT
  unescape_amp '&sup3;' 179.                                "#EC NOTEXT
  unescape_amp '&acute;' 180.                               "#EC NOTEXT
  unescape_amp '&micro;' 181.                               "#EC NOTEXT
  unescape_amp '&para;' 182.                                "#EC NOTEXT
  unescape_amp '&middot;' 183.                              "#EC NOTEXT
  unescape_amp '&cedil;' 184.                               "#EC NOTEXT
  unescape_amp '&sup1;' 185.                                "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&ordm;' 186.                                "#EC NOTEXT
  unescape_amp '&raquo;' 187.                               "#EC NOTEXT
  unescape_amp '&frac14;' 188.                              "#EC NOTEXT
  unescape_amp '&frac12;' 189.                              "#EC NOTEXT
  unescape_amp '&frac34;' 190.                              "#EC NOTEXT
  unescape_amp '&iquest;' 191.                              "#EC NOTEXT
  unescape_amp '&Agrave;' 192.                              "#EC NOTEXT
  unescape_amp '&Aacute;' 193.                              "#EC NOTEXT
  unescape_amp '&Acirc;' 194.                               "#EC NOTEXT
  unescape_amp '&Atilde;' 195.                              "#EC NOTEXT
  unescape_amp '&Auml;' 196.                                "#EC NOTEXT
  unescape_amp '&Aring;' 197.                               "#EC NOTEXT
  unescape_amp '&AElig;' 198.                               "#EC NOTEXT
  unescape_amp '&Ccedil;' 199.                              "#EC NOTEXT
  unescape_amp '&Egrave;' 200.                              "#EC NOTEXT
  unescape_amp '&Eacute;' 201.                              "#EC NOTEXT
  unescape_amp '&Ecirc;' 202.                               "#EC NOTEXT
  unescape_amp '&Euml;' 203.                                "#EC NOTEXT
  unescape_amp '&Igrave;' 204.                              "#EC NOTEXT
  unescape_amp '&Iacute;' 205.                              "#EC NOTEXT
  unescape_amp '&Icirc;' 206.                               "#EC NOTEXT
  unescape_amp '&Iuml;' 207.                                "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&ETH;' 208.                                 "#EC NOTEXT
  unescape_amp '&Ntilde;' 209.                              "#EC NOTEXT
  unescape_amp '&Ograve;' 210.                              "#EC NOTEXT
  unescape_amp '&Oacute;' 211.                              "#EC NOTEXT
  unescape_amp '&Ocirc;' 212.                               "#EC NOTEXT
  unescape_amp '&Otilde;' 213.                              "#EC NOTEXT
  unescape_amp '&Ouml;' 214.                                "#EC NOTEXT
  unescape_amp '&times;' 215.                               "#EC NOTEXT
  unescape_amp '&Oslash;' 216.                              "#EC NOTEXT
  unescape_amp '&Ugrave;' 217.                              "#EC NOTEXT
  unescape_amp '&Uacute;' 218.                              "#EC NOTEXT
  unescape_amp '&Ucirc;' 219.                               "#EC NOTEXT
  unescape_amp '&Uuml;' 220.                                "#EC NOTEXT
  unescape_amp '&Yacute;' 221.                              "#EC NOTEXT
  unescape_amp '&THORN;' 222.                               "#EC NOTEXT
  unescape_amp '&szlig;' 223.                               "#EC NOTEXT
  unescape_amp '&agrave;' 224.                              "#EC NOTEXT
  unescape_amp '&aacute;' 225.                              "#EC NOTEXT
  unescape_amp '&acirc;' 226.                               "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&atilde;' 227.                              "#EC NOTEXT
  unescape_amp '&auml;' 228.                                "#EC NOTEXT
  unescape_amp '&aring;' 229.                               "#EC NOTEXT
  unescape_amp '&aelig;' 230.                               "#EC NOTEXT
  unescape_amp '&ccedil;' 231.                              "#EC NOTEXT
  unescape_amp '&egrave;' 232.                              "#EC NOTEXT
  unescape_amp '&eacute;' 233.                              "#EC NOTEXT
  unescape_amp '&ecirc;' 234.                               "#EC NOTEXT
  unescape_amp '&euml;' 235.                                "#EC NOTEXT
  unescape_amp '&igrave;' 236.                              "#EC NOTEXT
  unescape_amp '&iacute;' 237.                              "#EC NOTEXT
  unescape_amp '&icirc;' 238.                               "#EC NOTEXT
  unescape_amp '&iuml;' 239.                                "#EC NOTEXT
  unescape_amp '&eth;' 240.                                 "#EC NOTEXT
  unescape_amp '&ntilde;' 241.                              "#EC NOTEXT
  unescape_amp '&ograve;' 242.                              "#EC NOTEXT
  unescape_amp '&oacute;' 243.                              "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&ocirc;' 244.                               "#EC NOTEXT
  unescape_amp '&otilde;' 245.                              "#EC NOTEXT
  unescape_amp '&ouml;' 246.                                "#EC NOTEXT
  unescape_amp '&divide;' 247.                              "#EC NOTEXT
  unescape_amp '&oslash;' 248.                              "#EC NOTEXT
  unescape_amp '&ugrave;' 249.                              "#EC NOTEXT
  unescape_amp '&uacute;' 250.                              "#EC NOTEXT
  unescape_amp '&ucirc;' 251.                               "#EC NOTEXT
  unescape_amp '&uuml;' 252.                                "#EC NOTEXT
  unescape_amp '&yacute;' 253.                              "#EC NOTEXT
  unescape_amp '&thorn;' 254.                               "#EC NOTEXT
  unescape_amp '&yuml;' 255.                                "#EC NOTEXT
  unescape_amp '&fnof;' 402.                                "#EC NOTEXT
  unescape_amp '&Alpha;' 913.                               "#EC NOTEXT
  unescape_amp '&Beta;' 914.                                "#EC NOTEXT
  unescape_amp '&Gamma;' 915.                               "#EC NOTEXT
  unescape_amp '&Delta;' 916.                               "#EC NOTEXT
  unescape_amp '&Epsilon;' 917.                             "#EC NOTEXT
  unescape_amp '&Zeta;' 918.                                "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&Eta;' 919.                                 "#EC NOTEXT
  unescape_amp '&Theta;' 920.                               "#EC NOTEXT
  unescape_amp '&Iota;' 921.                                "#EC NOTEXT
  unescape_amp '&Kappa;' 922.                               "#EC NOTEXT
  unescape_amp '&Lambda;' 923.                              "#EC NOTEXT
  unescape_amp '&Mu;' 924.                                  "#EC NOTEXT
  unescape_amp '&Nu;' 925.                                  "#EC NOTEXT
  unescape_amp '&Xi;' 926.                                  "#EC NOTEXT
  unescape_amp '&Omicron;' 927.                             "#EC NOTEXT
  unescape_amp '&Pi;' 928.                                  "#EC NOTEXT
  unescape_amp '&Rho;' 929.                                 "#EC NOTEXT
  unescape_amp '&Sigma;' 931.                               "#EC NOTEXT
  unescape_amp '&Tau;' 932.                                 "#EC NOTEXT
  unescape_amp '&Upsilon;' 933.                             "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&Phi;' 934.                                 "#EC NOTEXT
  unescape_amp '&Chi;' 935.                                 "#EC NOTEXT
  unescape_amp '&Psi;' 936.                                 "#EC NOTEXT
  unescape_amp '&Omega;' 937.                               "#EC NOTEXT
  unescape_amp '&alpha;' 945.                               "#EC NOTEXT
  unescape_amp '&beta;' 946.                                "#EC NOTEXT
  unescape_amp '&gamma;' 947.                               "#EC NOTEXT
  unescape_amp '&delta;' 948.                               "#EC NOTEXT
  unescape_amp '&epsilon;' 949.                             "#EC NOTEXT
  unescape_amp '&zeta;' 950.                                "#EC NOTEXT
  unescape_amp '&eta;' 951.                                 "#EC NOTEXT
  unescape_amp '&theta;' 952.                               "#EC NOTEXT
  unescape_amp '&iota;' 953.                                "#EC NOTEXT
  unescape_amp '&kappa;' 954.                               "#EC NOTEXT
  unescape_amp '&lambda;' 955.                              "#EC NOTEXT
  unescape_amp '&mu;' 956.                                  "#EC NOTEXT
  unescape_amp '&nu;' 957.                                  "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&xi;' 958.                                  "#EC NOTEXT
  unescape_amp '&omicron;' 959.                             "#EC NOTEXT
  unescape_amp '&pi;' 960.                                  "#EC NOTEXT
  unescape_amp '&rho;' 961.                                 "#EC NOTEXT
  unescape_amp '&sigmaf;' 962.                              "#EC NOTEXT
  unescape_amp '&sigma;' 963.                               "#EC NOTEXT
  unescape_amp '&tau;' 964.                                 "#EC NOTEXT
  unescape_amp '&upsilon;' 965.                             "#EC NOTEXT
  unescape_amp '&phi;' 966.                                 "#EC NOTEXT
  unescape_amp '&chi;' 967.                                 "#EC NOTEXT
  unescape_amp '&psi;' 968.                                 "#EC NOTEXT
  unescape_amp '&omega;' 969.                               "#EC NOTEXT
  unescape_amp '&thetasym;' 977.                            "#EC NOTEXT
  unescape_amp '&upsih;' 978.                               "#EC NOTEXT
  unescape_amp '&piv;' 982.                                 "#EC NOTEXT
  unescape_amp '&bull;' 8226.                               "#EC NOTEXT
  unescape_amp '&hellip;' 8230.                             "#EC NOTEXT
  unescape_amp '&prime;' 8242.                              "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&Prime;' 8243.                              "#EC NOTEXT
  unescape_amp '&oline;' 8254.                              "#EC NOTEXT
  unescape_amp '&frasl;' 8260.                              "#EC NOTEXT
  unescape_amp '&weierp;' 8472.                             "#EC NOTEXT
  unescape_amp '&image;' 8465.                              "#EC NOTEXT
  unescape_amp '&real;' 8476.                               "#EC NOTEXT
  unescape_amp '&trade;' 8482.                              "#EC NOTEXT
  unescape_amp '&alefsym;' 8501.                            "#EC NOTEXT
  unescape_amp '&larr;' 8592.                               "#EC NOTEXT
  unescape_amp '&uarr;' 8593.                               "#EC NOTEXT
  unescape_amp '&rarr;' 8594.                               "#EC NOTEXT
  unescape_amp '&darr;' 8595.                               "#EC NOTEXT
  unescape_amp '&harr;' 8596.                               "#EC NOTEXT
  unescape_amp '&crarr;' 8629.                              "#EC NOTEXT
  unescape_amp '&lArr;' 8656.                               "#EC NOTEXT
  unescape_amp '&uArr;' 8657.                               "#EC NOTEXT
  unescape_amp '&rArr;' 8658.                               "#EC NOTEXT
  unescape_amp '&dArr;' 8659.                               "#EC NOTEXT
  unescape_amp '&hArr;' 8660.                               "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&forall;' 8704.                             "#EC NOTEXT
  unescape_amp '&part;' 8706.                               "#EC NOTEXT
  unescape_amp '&exist;' 8707.                              "#EC NOTEXT
  unescape_amp '&empty;' 8709.                              "#EC NOTEXT
  unescape_amp '&nabla;' 8711.                              "#EC NOTEXT
  unescape_amp '&isin;' 8712.                               "#EC NOTEXT
  unescape_amp '&notin;' 8713.                              "#EC NOTEXT
  unescape_amp '&ni;' 8715.                                 "#EC NOTEXT
  unescape_amp '&prod;' 8719.                               "#EC NOTEXT
  unescape_amp '&sum;' 8721.                                "#EC NOTEXT
  unescape_amp '&minus;' 8722.                              "#EC NOTEXT
  unescape_amp '&lowast;' 8727.                             "#EC NOTEXT
  unescape_amp '&radic;' 8730.                              "#EC NOTEXT
  unescape_amp '&prop;' 8733.                               "#EC NOTEXT
  unescape_amp '&infin;' 8734.                              "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&ang;' 8736.                                "#EC NOTEXT
  unescape_amp '&and;' 8743.                                "#EC NOTEXT
  unescape_amp '&or;' 8744.                                 "#EC NOTEXT
  unescape_amp '&cap;' 8745.                                "#EC NOTEXT
  unescape_amp '&cup;' 8746.                                "#EC NOTEXT
  unescape_amp '&int;' 8747.                                "#EC NOTEXT
  unescape_amp '&there4;' 8756.                             "#EC NOTEXT
  unescape_amp '&sim;' 8764.                                "#EC NOTEXT
  unescape_amp '&cong;' 8773.                               "#EC NOTEXT
  unescape_amp '&asymp;' 8776.                              "#EC NOTEXT
  unescape_amp '&ne;' 8800.                                 "#EC NOTEXT
  unescape_amp '&equiv;' 8801.                              "#EC NOTEXT
  unescape_amp '&le;' 8804.                                 "#EC NOTEXT
  unescape_amp '&ge;' 8805.                                 "#EC NOTEXT
  unescape_amp '&sub;' 8834.                                "#EC NOTEXT
  unescape_amp '&sup;' 8835.                                "#EC NOTEXT
  unescape_amp '&nsub;' 8836.                               "#EC NOTEXT
  unescape_amp '&sube;' 8838.                               "#EC NOTEXT
  unescape_amp '&supe;' 8839.                               "#EC NOTEXT
  unescape_amp '&oplus;' 8853.                              "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&otimes;' 8855.                             "#EC NOTEXT
  unescape_amp '&perp;' 8869.                               "#EC NOTEXT
  unescape_amp '&sdot;' 8901.                               "#EC NOTEXT
  unescape_amp '&lceil;' 8968.                              "#EC NOTEXT
  unescape_amp '&rceil;' 8969.                              "#EC NOTEXT
  unescape_amp '&lfloor;' 8970.                             "#EC NOTEXT
  unescape_amp '&rfloor;' 8971.                             "#EC NOTEXT
  unescape_amp '&lang;' 9001.                               "#EC NOTEXT
  unescape_amp '&rang;' 9002.                               "#EC NOTEXT
  unescape_amp '&loz;' 9674.                                "#EC NOTEXT
  unescape_amp '&spades;' 9824.                             "#EC NOTEXT
  unescape_amp '&clubs;' 9827.                              "#EC NOTEXT
  unescape_amp '&hearts;' 9829.                             "#EC NOTEXT
  unescape_amp '&diams;' 9830.                              "#EC NOTEXT
  unescape_amp '&quot;' 34.                                 "#EC NOTEXT
  unescape_amp '&amp;' 38.                                  "#EC NOTEXT
  unescape_amp '&lt;' 60.                                   "#EC NOTEXT
  unescape_amp '&gt;' 62.                                   "#EC NOTEXT
  unescape_amp '&OElig;' 338.                               "#EC NOTEXT
  unescape_amp '&oelig;' 339.                               "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&Scaron;' 352.                              "#EC NOTEXT
  unescape_amp '&scaron;' 353.                              "#EC NOTEXT
  unescape_amp '&Yuml;' 376.                                "#EC NOTEXT
  unescape_amp '&circ;' 710.                                "#EC NOTEXT
  unescape_amp '&tilde;' 732.                               "#EC NOTEXT
  unescape_amp '&ensp;' 8194.                               "#EC NOTEXT
  unescape_amp '&emsp;' 8195.                               "#EC NOTEXT
  unescape_amp '&thinsp;' 8201.                             "#EC NOTEXT
  unescape_amp '&zwnj;' 8204.                               "#EC NOTEXT
  unescape_amp '&zwj;' 8205.                                "#EC NOTEXT
  unescape_amp '&lrm;' 8206.                                "#EC NOTEXT
  unescape_amp '&rlm;' 8207.                                "#EC NOTEXT
  unescape_amp '&ndash;' 8211.                              "#EC NOTEXT
  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT
  unescape_amp '&mdash;' 8212.                              "#EC NOTEXT
  unescape_amp '&lsquo;' 8216.                              "#EC NOTEXT
  unescape_amp '&rsquo;' 8217.                              "#EC NOTEXT
  unescape_amp '&sbquo;' 8218.                              "#EC NOTEXT
  unescape_amp '&ldquo;' 8220.                              "#EC NOTEXT
  unescape_amp '&rdquo;' 8221.                              "#EC NOTEXT
  unescape_amp '&bdquo;' 8222.                              "#EC NOTEXT
  unescape_amp '&dagger;' 8224.                             "#EC NOTEXT
  unescape_amp '&Dagger;' 8225.                             "#EC NOTEXT
  unescape_amp '&permil;' 8240.                             "#EC NOTEXT
  unescape_amp '&lsaquo;' 8249.                             "#EC NOTEXT
  unescape_amp '&rsaquo;' 8250.                             "#EC NOTEXT
  unescape_amp '&euro;' 8364.                               "#EC NOTEXT

  CHECK ev_unescaped CP '*&*;*'.                            "#EC NOTEXT

总结

通过解析得到返回结果,之后再进行后续处理即可。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值