|
| Autor |
Nachricht |
noobvb Newbie

Anmeldedatum: 17.07.2009 Beiträge: 1
|
Https Upload funktioniert nicht
Verfasst am: 17.07.2009, 09:24 |
|
|
Hi Leute,
ich habe das Problem, dass ich eine XMl Datei auf einen Server übertragen soll und das ständig fehl schlägt.
Ich habe mittlerer weile 3 Tage mit Internetrecherche zugebracht und hab nach den gefunden Treffern folgende Codes angefertigt, die eigentlich tun sollten, aber dies nicht tun.
Kennt sich vielleicht in diesem Forum damit aus und kann mir eine Lösung nennen. Habe ich noch Fehler im Code oder seht ihr das Problem auf Seiten des Servers? Ich habe mittlererweile alles ausgeschöpft, was mir so eingefallen ist und bekomme es einfach nicht hin, dabei sollte es diese woche bereits fertig sein. Wäre super, wenn sich jemand von euch den Code anschauen und mir vielleicht einen Tip geben könnte, wo darin der Fehler steckt.
Testcode eins:
| Code: |
Try
Dim Path As String
Dim Adress As New Uri("https://Server")
Dim FileName As String
Path = "C:\Debug\testfiles\"
FileName = "125202-RueckmeldungKontakt.xml"
myWebClient.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes("user:pwd")))
Dim responseArray As Byte() = myWebClient.UploadFile(Adress, "POST", Path & FileName)
Catch webex As WebException
Dim value As WebExceptionStatus
value = webex.Status
MsgBox(value.ToString)
MsgBox(webex.Message)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub |
Testcode 2:
| Code: |
Private Sub ExchangeXMLByHttps()
Try
Dim fileToUpload As String = "C:\Debug\testfiles\125202-RueckmeldungKontakt.xml" '"c:\temp\transfer me.zip"
Dim fileLength As Long = My.Computer.FileSystem.GetFileInfo(fileToUpload).Length
Dim url As String = "https://Server"
Dim port As String = "443" ' SSL Port
'Wenn der Port unterstützt wird, wird er an die URL angefügt
If port <> "" Then
'
'Anfügen des Ports an den URI
Dim u As New Uri(url)
'Get the host (example: "www.example.com")
Dim host As String = u.Host
'Replace the host with the host:port
url = url.Replace(host, host & ":" & port)
End If
url = url.TrimEnd("/"c) & "/" & IO.Path.GetFileName(fileToUpload)
'Anfrage an Server erzeugen
Dim request As HttpWebRequest = _
DirectCast(System.Net.HttpWebRequest.Create(url), HttpWebRequest)
'Benutzername und Passwort an request übergeben
request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes("user:pwd")))
'Übertragungsmethode zum Server
request.Method = WebRequestMethods.Http.Put
'Festlegen der Länge des zu übertragenden Files
request.ContentLength = fileLength
'Anfragen an Server um dessen Dateistream zu bekommen.
Dim s As IO.Stream = request.GetRequestStream()
'Das jeweilige File öffnen und Daten einlesen
Dim fs As New IO.FileStream(fileToUpload, IO.FileMode.Open, _
IO.FileAccess.Read)
'Puffer erzeugen, innerhalb dem die Bytes des Files gespeichert werden
Dim byteTransferRate As Integer = 1024
Dim bytes(byteTransferRate - 1) As Byte
Dim bytesRead As Integer = 0
Dim totalBytesRead As Long = 0
'Daten des Files lesen und an den Stream des Servers anfügen.
Do
'Lesen des Files
bytesRead = fs.Read(bytes, 0, bytes.Length)
If bytesRead > 0 Then
totalBytesRead += bytesRead
'In des Stream schreiben
s.Write(bytes, 0, bytesRead)
End If
Loop While bytesRead > 0
'Server Stream wieder schließen
s.Close()
s.Dispose()
s = Nothing
'Datei schließen
fs.Close()
fs.Dispose()
fs = Nothing
'Erneutes Aufrufen des Servers um den Upload zu bestätigen
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
'StatusCode der Serverantwort ermitteln
Dim code As HttpStatusCode = response.StatusCode
'Rückgabe schließen
response.Close()
response = Nothing
'Überprüfen der Uploads.
' Prüfen der Übermittelten Bytes und der Größe des Files
'
'Überprüfen, ob File angelegt wurde
If totalBytesRead = fileLength AndAlso _
code = HttpStatusCode.Created Then
MessageBox.Show("The file has uploaded successfully!", "Upload Complete", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("The file did not upload successfully.", _
"Upload Failed", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
Catch ex As WebException
MsgBox(ex.Message)
Catch e As Exception
MsgBox(e.Message)
End Try
End Sub |
Kann sich bitte jemand von euch den Code anschauen und mir vielleicht mitteilen, worin da der Fehler stecken könnte? Wenn ich nämlich mal wüsste, dass der Code so eigentlich richtig ist, hätte ich auch schon viel gewonnen.
Hoffe, ihr könnt mir helfen.
Beste Grüße
noobvb |
|
| |
|
 |
|
|