我正在尝试获取请求并将其读取为:
byte[] buffer;
Stream read = http.GetResponseStream();
string readIt = read.Read(buffer, 0, read.Length)
但它会因无效参数而抛出错误。
在使用Stream而不是StreamReader时,知道如何获得对字符串的响应吗?
答案 0 :(得分:5)
那是因为你还没有创建你尝试使用的字节数组。
byte[] buffer = new byte[read.Length];
请注意,您应该在使用之前检查read.Length
的值。响应长度并不总是已知。
此外,Read
方法会返回int
,而不是string
。
此外,这非常重要,您必须使用来自Read
方法的返回值,因为它告诉您实际读取了多少字节。 Read
方法不必返回您要求的所有字节,因此您必须循环,直到它返回零值,这意味着该流已被读取到最后:
int offset = 0, len;
do {
len = read.Read(buffer, offset, read.Length - offset);
offset += len;
} while (len > 0);
// now offset contains the number of bytes read into the buffer