2

我正在尝试为我的 webex 站点使用 NBR API。当我运行 downloadNBRStorageFile SOAP 请求时,它会以流中的 webex 录制响应。

WebResponse response = request.GetResponse();
Stream responseStream = response.GetResponseStream();

当我从 C# 中的响应中提取流并将其写入文件时。流和文件包含额外的标头详细信息,导致文件无法在基于网络的录制播放器中打开。

当我在记事本中检查从 API 下载的文件时,它看起来像这样:

------=_Part_281_1815085984.1458150816433 内容类型:文本/xml;charset=UTF-8 内容传输编码:二进制内容 ID:<0CA08FF0D94F4292B948DF640C1DD4E2>

------=_Part_281_1815085984.1458150816433 Content-Type: application/octet-stream Content-Transfer-Encoding: binary Content-Id:

Bob's Personal Room-20160108 1435-1.arf 648735 false ------=_Part_281_1815085984.1458150816433 Content-Type: application/octet-stream Content-Transfer-Encoding: binary Content-Id:

[1] èËæV¬æ d ....随机字符(.arf 文件数据)


1)如何在 C# 中只保存文件数据,以便当我将其保存为 file.arf 时我将能够打开它

 WebResponse response = request.GetResponse();
        //  HttpWebResponse response = (HttpWebResponse)request.GetResponse();



        Stream responseStream = response.GetResponseStream();
        MemoryStream memoryStream = new MemoryStream();

        String test = responseStream.ToString();


        int count = 0;

        do
        {
            count = responseStream.Read(buffer, 0, buffer.Length);
            memoryStream.Write(buffer, 0, count);

            if (count == 0)
            {
                break;
            }
        }
        while (true);

        result = memoryStream.ToArray();


        FileStream fs = new FileStream("c:\\file5.arf", FileMode.OpenOrCreate, FileAccess.ReadWrite);

        fs.Write(result, 0, result.Length);

        fs.Close();
        memoryStream.Close();
        responseStream.Close();

对此的任何帮助将不胜感激,因为我已经坚持了几天。我假设我必须解析多部分流,只保存实际的文件数据,但这就是我所困的地方。

4

0 回答 0