Có quá nhiều thông tin về cách tạo phản hồi nhiều phần hoặc thực hiện tải lên nhiều tệp. Tôi dường như không thể tìm thấy bất kỳ thông tin nào về cách xử lý phản hồi http đa phần. Đây là một số đầu ra IRB từ một phản ứng http đa tôi đang làm việc với.Làm cách nào để xử lý các phản hồi http đa phần trong Ruby Net: HTTP?
>> response.http.content_type
=> "multipart/related"
>> response.http.body[0..2048]
=> "\r\n------=_Part_3_806633756.1271797659309\r\nContent-Type: text/xml; charset=UTF-8\r\nContent-Transfer-Encoding: binary\r\nContent-Id: <A0FCC4333C6D0FCA346B97FAB6B61818>\r\n\r\n<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><ns1:runReportResponse soapenv:encodingStyle="http://www.w3.org/2003/05/soap-encoding" xmlns:ns1="http://192.168.1.200:8080/jasperserver/services/repository"><ns2:result xmlns:ns2="http://www.w3.org/2003/05/soap-rpc">runReportReturn</ns2:result><runReportReturn xsi:type="xsd:string"><?xml version="1.0" encoding="UTF-8"?>\n<operationResult version="2.0.1">\n\t<returnCode><![CDATA[0]]></returnCode>\n</operationResult>\n</runReportReturn></ns1:runReportResponse></soapenv:Body></soapenv:Envelope>\r\n------=_Part_3_806633756.1271797659309\r\nContent-Type: application/pdf\r\nContent-Transfer-Encoding: binary\r\nContent-Id: <report>\r\n\r\n%PDF-1.4\n%\342\343\317\323\n3 0 obj
phản hồi.http.body [0..2048] .split ('\ r \ n') hoặc có thể .split (/ (?: \\ r \\ n) {1,2} /) sẽ đặt mỗi một phần của phản hồi thành một mảng. Bạn có thể đặt nó vào một băm với một chút công việc phụ, có lẽ một số đoạn mã này sẽ giúp: http://snippets.dzone.com/posts/show/302 Tất cả đều phụ thuộc vào những gì bạn thực sự muốn để làm với phản hồi. – iain