我使用ServerXMLHTTP和HTTPRequester插件发送请求,我可以看到请求的响应是请求文件的原始二进制数据。我需要在一个Byte[]中读取和保存这个二进制数据,但是我一直得到错误:当前编码处于无效状态的文件结束。
这是我的密码:
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,我应该使用什么?
发布于 2014-01-12 15:32:17
我用了这个,效果很好:
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();
}
}
}https://stackoverflow.com/questions/21062431
复制相似问题