首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从ServerXMLHTTP读取二进制响应?

如何从ServerXMLHTTP读取二进制响应?
EN

Stack Overflow用户
提问于 2014-01-11 12:51:32
回答 1查看 954关注 0票数 1

我使用ServerXMLHTTP和HTTPRequester插件发送请求,我可以看到请求的响应是请求文件的原始二进制数据。我需要在一个Byte[]中读取和保存这个二进制数据,但是我一直得到错误:当前编码处于无效状态的文件结束。

这是我的密码:

代码语言:javascript
复制
 ServerXMLHTTP HTTPRequest=new ServerXMLHTTP();
 HTTPRequest.open("POST",@"https://thetargetwebsite/",false);
 HTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 HTTPRequest.send("file_id=" + file_id);
string binaryfile=HTTPRequest.responseText; // causes the error
//OR
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
byte[] bytes = encoding.GetBytes(HTTPRequest.responseText); // also causes the error

你能帮我阅读二进制数据的回复文本吗?

编辑:如果我不使用ServerXMLHTTP,我应该使用什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-12 15:32:17

我用了这个,效果很好:

代码语言:javascript
复制
         byte[] result;
         byte[] buffer = new byte[4096];

         System.Net.WebRequest wr = System.Net.WebRequest.Create(url);

         using (System.Net.WebResponse response = wr.GetResponse())
         {
             using (Stream responseStream = response.GetResponseStream())
             {
                 using (MemoryStream memoryStream = new MemoryStream())
                 {
                     int count = 0;
                     do
                     {
                         count = responseStream.Read(buffer, 0, buffer.Length);
                         memoryStream.Write(buffer, 0, count);

                     } while (count != 0);

                     result = memoryStream.ToArray();

                 }
             }
         }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21062431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档