【发布时间】:2020-04-28 14:35:59
【问题描述】:
我正在尝试从肥皂服务下载文件,并且在成功请求后得到以下内容
响应头
multipart/related; type="application/xop+xml"; boundary="uuid:917b60a9-3089-43ad-a8c2-b4a3c62db98c"; start="<root.message@cxf.apache.org>"; start-info="text/xml"
响应正文
--uuid:0a679f64-0753-44fe-b627-2267b5b72b1d
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: binary
Content-ID: <root.message@cxf.apache.org>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:leseDokumentResponse xmlns:ns2="http://webservice/"><return><status>OK</status><dokument><xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:c58d3315-9cb6-413a-98a1-5a29671cfdb6-41@cxf.apache.org"/></dokument></return></ns2:leseDokumentResponse></soap:Body></soap:Envelope>
--uuid:0a679f64-0753-44fe-b627-2267b5b72b1d
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <c58d3315-9cb6-413a-98a1-5a29671cfdb6-41@cxf.apache.org>
... binary data ...
--uuid:0a679f64-0753-44fe-b627-2267b5b72b1d--
如何解析文件二进制数据?
我尝试了这些问题,但没有任何效果 Parsing http-multipart response Parse multipart response for image download in ios
【问题讨论】:
-
来自响应头:
boundary="uuid:917b60a9-3089-43ad-a8c2-b4a3c62db98c"与您在正文中获得的边界不同。这正常吗?或者你打印了2个不同的?否则,使用Data的.firstRange(of:)方法,迭代查找所有--uuid:0a679f64-0753-44fe-b627-2267b5b72b1d,即可找到二进制数据。 -
注意测试,但蒸汽代码 (github.com/vapor/multipart-kit) 对此有用吗?
-
uuid 应该作为示例而不是按原样,因为它与一个请求不同
标签: swift soap alamofire multipart urlsession