2009-09-20 55 views
2

由於SSL證書檢索文檔,我正在使用cfhttp發出SOAP請求。我們對服務器的訪問權限有限,因此我不確定是否可以調整服務器以將證書添加到CF密鑰庫中。 (http://www.coldfusionmuse.com/index.cfm/2005/01/29/keystore在CF中使用SOAP +附件

responseBody返回一個ByteArrayOutputStream,它包含soap消息和文檔內容(http://www.w3.org/TR/SOAP-attachments)的內容。

有誰知道如果ColdFusion提供了任何內置的方法來分離兩者,IE將它轉換爲使用cfinvoke的結果的某種類型的ColdFusion.Response對象,或者是否需要將我的Java書籍和遍歷ByteArray去掉我的內容。 謝謝。

回答

1

一旦你有字節數組(使用流的toByteArray()方法?),你應該能夠使用CharsetEncode()函數將這些字節轉換爲ColdFusion字符串。你可能不得不自己切斷MIME段。對於包含SOAP信封的分段,您可以用XmlParse()解析該分段並進行適當的處​​理。包含二進制附件的段應該可以用BinaryDecode()進行解碼(然後根據需要對結果進行任何操作,例如保存到文件或數據庫)。

+0

感謝Sixten Otto - 關於剪切MIME段的任何建議。 將全部轉換爲文本,查找分割區域,從mime頭部抓取編碼類型,搜索區域頁腳,獲取開始點和停止點,然後返回到BtyeArray並從開始到停止點讀取/解碼? 猜測我有點懷疑是以二進制數據的文本編碼格式獲得準確的開始,停止點。 – Steve 2009-09-21 06:32:43

+0

編碼如何處理多個MIME頭文件,即SOAP然後是Attachements。猜猜我正在尋找一種方法來分割不同MIME類型頭中的byteArray,以分別對每個段進行編碼。 ----但是因爲我不是第一個試圖用附件解碼SOAP響應的人,所以我希望能有一個更清晰的解決方案。 – Steve 2009-09-21 06:38:18

+0

對不起Sixten Otto--你可以告訴它一個星期一。分割Mime類型後,我們將看到BinaryDecode如何處理字符串編碼的段。二進制字符串,中間,到Binary應該有希望工作。 – Steve 2009-09-21 10:28:23