.net – Soap响应,没有格式良好的XML,没有XOP部分,使用WSE
我正在使用一个Web服务,我在其中发送带有附件的请求,我们从服务器收到包含各种信息的响应.我已经记录了在另一个问题
Adding an attachment to SOAP request中一起获取请求的一些问题,但这一点已经解决,现在响应上出现了另一个问题.
我们收到响应确定,但抛出错误说明:
InnerException是:
返回的xml如下所示: --uuid:36875c60-630c-4e23-9e74-f9a9c7547fc7 Content-Type: application/xop+xml;charset=utf-8;type="text/xml"; Content-ID: <rootpart*36875c60-630c-4e23-9e74-f9a9c7547fc7@example.jaxws.sun.com> content-transfer-encoding: binary <?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <payloadManifest xmlns="http://(namespace)"> <manifest contentID="content0" element="ProcessAttachment" namespaceURI="http://(namespace)" version="2.01"/> </payloadManifest> </soapenv:Header> <soapenv:Body> <tran:ProcessMessageResponse xmlns="http://(namespace)" xmlns:ns2="http://(ns2Namespace)" xmlns:ns3="http://(ns3Namespace)" xmlns:tran="http://(tranNamespace)"> <tran:payload> <tran:content id="content0"> <s:ShowServiceProcessingAdvisory xmlns:s="http://(sNamespace)"> <s:ApplicationArea> <s:Sender> <s:Component>Global Warranty Management</s:Component> <s:Task>ShowAttachments</s:Task> <s:CreatorNameCode>Creator</s:CreatorNameCode> <s:SenderNameCode>GM</s:SenderNameCode> </s:Sender> <s:CreationDateTime>2012-01-10T12:58:27Z</s:CreationDateTime> <s:Destination> <s:DestinationNameCode>XX</s:DestinationNameCode> <s:DealerNumber>234567</s:DealerNumber> <s:DealerCountry>US</s:DealerCountry> </s:Destination> </s:ApplicationArea> <s:DataArea> <s:Show/> <s:ServiceProcessingAdvisory> <s:Header> <s:SecondaryDealerNumber>253909</s:SecondaryDealerNumber> <s:Disposition> <s:RepairOrder> <s:WarrantyClaim xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:WarrantyClaimExtended"> <s:OEMClaimNumber>00112233445566778899</s:OEMClaimNumber> <gwm:Attachment xmlns:gwm="http://(gwmNamespace)"> <gwm:AttachmentId>5678987</gwm:AttachmentId> <gwm:Filename>14.jpg</gwm:Filename> </gwm:Attachment> </s:WarrantyClaim> </s:RepairOrder> </s:Disposition> </s:Header> </s:ServiceProcessingAdvisory> </s:DataArea> </s:ShowServiceProcessingAdvisory> </tran:content> </tran:payload> </tran:ProcessMessageResponse> </soapenv:Body> </soapenv:Envelope> --uuid:36875c60-630c-4e23-9e74-f9a9c7547fc7-- 我假设由于MIME部分这是一个错误,但应如何处理? 可能我只是补充一点,这是在SoapUI中返回的完全相同的XML,并且是预期返回的XML.此外,我可能会补充说WSE是有两个原因所必需的,因为Web服务的第三方开发人员拒绝改变他们的工作方法,我们也依赖VS 2005,因此无法使用WCF,特别是截止日期笼罩着我们. 编辑:我收到的实际响应如下,我将其格式化为便于阅读 HTTP/1.1 200 OK Date: Mon,16 Jan 2012 09:44:22 GMT Server: ACE XML Gateway Cache-Control: no-cache="Set-Cookie" Set-Cookie: JSESSIONID=h3LnPTxYdZJ3wp4zFl2GV3BYQ7fZD1p8WbvPgl1Qq95g1F9GQhMC!1396094632; path=/ X-Powered-By: Servlet/2.5 JSP/2.1 Content-Type: multipart/related; type="application/xop+xml"; boundary="uuid:a9a94e4e-5134-4995-8884-dfd4d65b7784"; start="<rootpart*a9a94e4e-5134-4995-8884-dfd4d65b7784@example.jaxws.sun.com>"; start-info="text/xml" Content-Length: 2296 Keep-Alive: timeout=15,max=100 Connection: Keep-Alive --uuid:a9a94e4e-5134-4995-8884-dfd4d65b7784 Content-Type: application/xop+xml;charset=utf-8;type="text/xml"; Content-ID: <rootpart*a9a94e4e-5134-4995-8884-dfd4d65b7784@example.jaxws.sun.com> content-transfer-encoding: binary <?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><payloadManifest xmlns="http://www.starstandards.org/webservices/2005/10/transport"><manifest contentID="content0" element="ProcessAttachment" namespaceURI="http://www.starstandards.org/STAR" version="2.01"/></payloadManifest></soapenv:Header><soapenv:Body><tran:ProcessMessageResponse xmlns="http://www.starstandards.org/STAR" xmlns:ns2="http://www.gm.com/2006/GWM" xmlns:ns3="http://www.starstandards.org/webservices/2005/10/transport" xmlns:tran="http://www.starstandards.org/webservices/2005/10/transport"><tran:payload><tran:content id="content0"><s:ShowServiceProcessingAdvisory xmlns:s="http://www.starstandards.org/STAR"><s:ApplicationArea><s:Sender><s:Component>Global Warranty Management</s:Component><s:Task>ShowAttachments</s:Task><s:CreatorNameCode>General Motors</s:CreatorNameCode><s:SenderNameCode>GM</s:SenderNameCode></s:Sender><s:CreationDateTime>2012-01-16T09:44:24Z</s:CreationDateTime><s:Destination><s:DestinationNameCode>XX</s:DestinationNameCode><s:DealerNumber>253909</s:DealerNumber><s:DealerCountry>US</s:DealerCountry></s:Destination></s:ApplicationArea><s:DataArea><s:Show/><s:ServiceProcessingAdvisory><s:Header><s:SecondaryDealerNumber>253909</s:SecondaryDealerNumber><s:Disposition><s:RepairOrder><s:WarrantyClaim xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:WarrantyClaimExtended"><s:OEMClaimNumber>001116695583</s:OEMClaimNumber><gwm:Attachment xmlns:gwm="http://www.gm.com/2006/GWM"><gwm:AttachmentId>5677606</gwm:AttachmentId><gwm:Filename>1127.jpg</gwm:Filename></gwm:Attachment></s:WarrantyClaim></s:RepairOrder></s:Disposition></s:Header></s:ServiceProcessingAdvisory></s:DataArea></s:ShowServiceProcessingAdvisory></tran:content></tran:payload></tran:ProcessMessageResponse></soapenv:Body></soapenv:Envelope> --uuid:a9a94e4e-5134-4995-8884-dfd4d65b7784-- 解决方法
我不知道在创建帖子时是否是疏忽,但如果响应确实在<?xml之前确实有两个空格?>声明,那就是语法错误.如果发生xml声明,它必须是文档中的第一件事,没有其他内容(甚至是空格).
http://www.w3.org/TR/REC-xml/#sec-prolog-dtd 删除这些空格,文档看起来很好,所以我不知道它会是什么. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |