writer.Write(reader.ReadToEnd());
ersetzt du durch:
byte[] buf = new byte[1024];
while(reader.Peek() != -1)
{
reader.Read(buf, 0, 1024);
stream.Write(buf, 0, 1024);
}
Also, ich habe das jetzt mal so frei Schnautze aufgeschrieben, wie es evtl funktioniert. Es kann natürlich sein, dass irgent welche Parameter zu viel sind(bei dem stream.Write), aber es sollte passen. Guck halt mal ob es funktioniert. Wenn der Code vom Syntax richtig ist, aber der Server nur die ersten 1024 Bytes empfängt, musst du halt dort auch noch eine Schleife bauen, mit der du auch nachfolgende Daten hohlst.
Evtl musst du Binärdaten aber mit Convert.ToBase64String noch in das Base64-Format umwandeln.