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
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
so wäre es auch richtig. Führe ich den Code nochmal aus habe ich im Response
Das ist jedoch falsch, bei einem neuen Request soll der Header ja wieder leer sein.
Ausschnitt aus dem Code
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.
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
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
so wäre es auch richtig. Führe ich den Code nochmal aus habe ich im Response
Das ist jedoch falsch, bei einem neuen Request soll der Header ja wieder leer sein.
Ausschnitt aus dem Code
VB.NET-Quellcode
- Dim bData As New List(Of Byte)
- For Each sPost As DataItem In _post
- bData.AddRange(StringToByte("--" & Boundary))
- bData.AddRange(StringToByte("Content-Disposition: form-data; name=""" & sPost.Name & """"))
- bData.AddRange(StringToByte(""))
- bData.AddRange(StringToByte(sPost.Value))
- Next
- myRequest.ContentLength = bData.Count
- Dim myStream As Stream = myRequest.GetRequestStream
- myStream.Write(bDataArray, 0, bDataArray.Length)
- myStream.Flush()
- 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“ ()