Nicht schließen, stream, bis alle bytes geschrieben werden
Ich bin das senden einer POST-Anforderung an eine API-server und ich habe wiederverwendet code, wo ich erfolgreich auch schon gemacht auf anderen Servern und aus irgendeinem Grund, ich kann nicht herausfinden, warum es nicht funktioniert. Ich bekomme die Fehlermeldung:
"Nicht schließen, stream, bis alle bytes geschrieben werden."
obwohl ich erklärte, die Länge des Inhalts korrekt und ich bin mir nicht sicher, was ich hier vermisst...
data = data + "</posts>"
Dim postBytes As [Byte]() = Encoding.UTF8.GetBytes(data)
Thread.Sleep(10000)
track = data
If uri.Scheme = uri.UriSchemeHttps Then
Dim request As HttpWebRequest = HttpWebRequest.Create(url)
request.Method = "POST"
' //normalerweise benutze ich nur Anfrage.contentlength = postbytes.Länge oder Daten.Länge
request.ContentLength = System.Text.Encoding.UTF8.GetByteCount(data)
request.ContentType = "application/xml"
request.KeepAlive = False
request.Timeout = 120000
request.Credentials = New System.Net.NetworkCredential("xxxxxxxxxxxx", "xxxxxxxxx")
Using writer As New StreamWriter(request.GetRequestStream(), Encoding.UTF8)
writer.Write(postBytes)
writer.Flush()
writer.Close()
End Using
Using oResponse As HttpWebResponse = request.GetResponse()
Dim reader As New StreamReader(oResponse.GetResponseStream())
responseData = reader.ReadToEnd()
reader.Close()
oResponse.Close()
End Using
request.Abort()
End If
End If
Catch e As WebException
....
- Nevermind, es herausgefunden.
- Ihre eigene Frage zu beantworten, so können wir alle lernen und akzeptieren, Ihre eigene Antwort zu "schließen" die Frage... hey, wenn genug Leute abstimmen, die Antwort bis, erhalten Sie sogar ein Abzeichen IIRC!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
Exception
geworfen wird, weil Sie schreiben, die weniger bytes als dieWebRequest
erwartet. Zum Beispiel, wenn Sie festgelegt haben, sagen 75 bytes in derContentLength
Eigentum und Sie schreiben 69 bytes auf derRequestStream
und schließen Sie die exception wird geworfen.veränderte mein code wie oben