Stream wird nicht geleert

  • VB.NET

    Stream wird nicht geleert

    Moin,

    ich arbeite gerade an meiner HttpPostRequest Library. Nun habe ich sie mal komplett überarbeitet, so das alle Encoding fehler weg sind.
    Zudem kann man nun nicht nur eine Datei hochladen sondern sie unterstützt MultiUpload.

    Nun stelle ich also den Header zusammen und stecke den in den RequestStream des HttpWebRequests.

    Das funktioniert auch soweit, wenn ich jedoch den selben Code nochmals ausführe, wird der Stream doppelt genommen und ausgelesen.

    Beispielsweise setzte ich eine Variable als Array

    Quellcode

    1. bla[] = "blubb"


    im PHP Script habe ich einfache Ausgabe der Übertragung

    [PHP]print_r($_POST);[/code]

    Führe ich den Code zum ersten Mal aus habe ich im Response

    Quellcode

    1. Array
    2. (
    3. [bla] => Array
    4. (
    5. [0] => blubb
    6. )
    7. )


    so wäre es auch richtig. Führe ich den Code nochmal aus habe ich im Response

    Quellcode

    1. Array
    2. (
    3. [bla] => Array
    4. (
    5. [0] => blubb
    6. [1] => blubb
    7. )
    8. )


    Das ist jedoch falsch, bei einem neuen Request soll der Header ja wieder leer sein.

    Ausschnitt aus dem Code

    VB.NET-Quellcode

    1. Dim bData As New List(Of Byte)
    2. For Each sPost As DataItem In _post
    3. bData.AddRange(StringToByte("--" & Boundary))
    4. bData.AddRange(StringToByte("Content-Disposition: form-data; name=""" & sPost.Name & """"))
    5. bData.AddRange(StringToByte(""))
    6. bData.AddRange(StringToByte(sPost.Value))
    7. Next
    8. myRequest.ContentLength = bData.Count
    9. Dim myStream As Stream = myRequest.GetRequestStream
    10. myStream.Write(bDataArray, 0, bDataArray.Length)
    11. myStream.Flush()
    12. myStream.Close()


    Lasse ich mir das ByteArray ausgeben sieht dort auch alles richtig aus. Ich denke es liegt irgendwie am myStream.

    Edit: hat sich erledigt, lag daran, dass ich ne Globale Instanz hatte, dachte nur beim Request wird der Stream auch neu gesetzt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dodo“ ()