That's because you haven't created the byte array that you try to use.
byte[] buffer = new byte[read.Length];
Note though that you should check the value of read.Length before you use it. The response length is not always known.
Also, the Read method returns an int, not a string.
Also, and this is very important, you have to use the return value from the Read method, as it tells you how many bytes were actually read. The Read method doesn't have to return all the bytes that you ask for, so you have to loop until it returns the value zero, which means that the stream has been read to the end:
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
buffer)inttostringtoo :)