代码之家  ›  专栏  ›  技术社区  ›  Pratiti Das

错误:节点(Fedex)中soap客户端的XML格式无效

  •  0
  • Pratiti Das  · 技术社区  · 6 年前

    我正在使用 soap 在节点中,向Fedex Web Services请求上载文档。要上载的文档可以是转换为base64的有效文件类型(例如,多页的pdf)。如果此PDF必须只有一个页面,那么流程完全可以正常工作。但是,如果PDF是多页的,我从联邦快递收到以下错误:

    "Invalid XML","detail":"Error: Unexpected close tag\nLine: 0\nColumn: 127\nChar: >".
    

    为了对此进行调试,我提取了发送给联邦快递的xml请求:

    <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:ns="http://fedex.com/ws/uploaddocument/v11"><soap:Body><ns:UploadDocumentsRequest xmlns:ns="http://fedex.com/ws/uploaddocument/v11" xmlns="http://fedex.com/ws/uploaddocument/v11"><ns:WebAuthenticationDetail><ns:UserCredential><ns:Key>*******</ns:Key><ns:Password>******</ns:Password></ns:UserCredential></ns:WebAuthenticationDetail><ns:ClientDetail><ns:AccountNumber>*****</ns:AccountNumber><ns:MeterNumber>*****</ns:MeterNumber></ns:ClientDetail><ns:Version><ns:ServiceId>cdus</ns:ServiceId><ns:Major>11</ns:Major><ns:Intermediate>0</ns:Intermediate><ns:Minor>0</ns:Minor></ns:Version><ns:OriginCountryCode>IN</ns:OriginCountryCode><ns:DestinationCountryCode>CN</ns:DestinationCountryCode><ns:Usage>ELECTRONIC_TRADE_DOCUMENTS</ns:Usage><ns:Documents><ns:CustomerReference></ns:CustomerReference><ns:DocumentType>PRO_FORMA_INVOICE</ns:DocumentType><ns:FileName>1810e200-4467-11e8-b6a8-07a18eeb7b1a.pdf-test.pdf</ns:FileName><ns:DocumentContent>Base64String</ns:DocumentContent></ns:Documents></ns:UploadDocumentsRequest></soap:Body></soap:Envelope>  
    

    请求中的变量“Base64String”可以假定为正在发送的文件。关于这个错误是什么以及这有什么意义,有什么帮助吗?如果需要其他信息,请告诉我

    1 回复  |  直到 6 年前
        1
  •  2
  •   Anshul Verma    6 年前

    如果您使用xml2js转换请求(很可能是这种情况),请确保升级到0.4.2版本。先将其删除,然后安装该版本:

    npm uninstall --save xml2js  
    npm install --save xml2js@0.4.2
    

    此版本中已处理此问题