SOAPAPI-下载二进制记录多部分响应c#
我正在尝试为我的webex站点使用NBR API。当我运行downloadNBRStorageFile SOAP请求时,它会以流中的webex录制响应SOAPAPI-下载二进制记录多部分响应c#,c#,api,soap,multipartform-data,webex,C#,Api,Soap,Multipartform Data,Webex,我正在尝试为我的webex站点使用NBR API。当我运行downloadNBRStorageFile SOAP请求时,它会以流中的webex录制响应 WebResponse response = request.GetResponse(); Stream responseStream = response.GetResponseStream(); 当我从C#中的响应中取出流时,将其写入一个文件。流和文件包含额外的标头详细信息,导致文件无法在基于网络的录音播放机中打开 当我在记事本中检查从AP
WebResponse response = request.GetResponse();
Stream responseStream = response.GetResponseStream();
当我从C#中的响应中取出流时,将其写入一个文件。流和文件包含额外的标头详细信息,导致文件无法在基于网络的录音播放机中打开
当我在记事本中检查从API下载的文件时,它如下所示:
------=_零件_281_1815085984.1458150816433
内容类型:text/xml;字符集=UTF-8
内容传输编码:二进制
内容Id:
------=_零件_281_1815085984.1458150816433
内容类型:应用程序/八位字节流
内容传输编码:二进制
内容Id:
鲍勃的私人房间-20160108 1435-1.arf
648735
假的
------=_零件_281_1815085984.1458150816433
内容类型:应用程序/八位字节流
内容传输编码:二进制
内容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();
在这方面的任何帮助将不胜感激,因为我已经被困在这几天了。我假设我必须通过多部分流进行解析,以便只保存实际的文件数据,但这正是我要解决的问题 我建议的是,由于响应是soap负载,您可能需要分析响应并调试您感兴趣保存的负载的哪一部分。稍后使用任何xml api加载并保存。@戈麦斯感谢戈麦斯的反馈。我似乎无法从响应中获取xml有效负载……我尝试在VS中调试并查看它将进入哪个属性,但在响应或响应流中看不到它。但我知道它在那里,因为当该流写入文件时,该文件包含所有数据;结果=responseStream.ReadToEnd();然后您可以使用XmlDocument()类来解析或保存它。