
Ergebnis 1 bis 12 von 12
-
Bin hier zuhause
- 09.05.2014, 09:34
- #1
Guten Tag
Mit dem neuen SDK für WP8.1 bin ich derzeit etwas mit dem Windows.Networking.BackgroundTransfer am basteln. Und zwar möchte ich auf einfache Weise einen Upload an eine simple php API leiten, welche dann die hochgeladene Datei speichert. Als Alternative gibts da nun ja den neuen WebClient, vorher als httpClient bekannt, mit welchem dies auch Problemlos funktioniert. Mein Problem mit dem BackgroundUploader ist, dass der header request nicht optimal gesendet wird und so meine php API das File nicht entgegennehmen kann. Weiss da jemand von eich Rat?
Mfg
Mit der kostenlosen PocketPC.ch App von meinem RM-937_eu_euro2_936 aus geschrieben.
-
Gehöre zum Inventar
- 09.05.2014, 09:47
- #2
Was ist denn genau das Problem mit dem Header? Hast du evtl. alternativ die Möglichkeit die PHP-Seite anzupassen?
-
Bin hier zuhause
- 09.05.2014, 10:08
- #3
Der BackgroundUploader sendet den header anscheinend anders, als der httpClient. Habe das mithilfe von Fiddler mal verglichen. Die php API ist im Grunde nichts anderes, als eine Upload-routine, welche aber das File erst speichert, wenn der header syntax (bei mir "Filename"), übereinstimmt. Im Code vom BackgroundUploader habe ich den auch so definiert, das php Script will das aber nicht akzeptieren bzw. bekommt eben die header Daten nicht so, wie es sie brauchen würde. Das php Script würde sich natürlich ändern lassen, kein Problem, aber da weiss ich nicht genau, was ich daran ändern soll, damit es das File akzeptiert.
Mfg
Mit der kostenlosen PocketPC.ch App von meinem RM-937_eu_euro2_936 aus geschrieben.
-
Gehöre zum Inventar
- 09.05.2014, 10:39
- #4
Kannst du bei Gelegenheit mal posten wie der Header in richtig aussehen muss und wie er vom Background Uploader daherkommt, bzw. auch den Code den du für den Upload in der App (HttpClient) und über den Background Uploader nutzt. Da wird das Problem glaub ich irgendwo im Detail stecken.
-
Bin hier zuhause
- 09.05.2014, 12:24
- #5
Ok werde ich tun, sobald ich @home bin. Ev noch zur Info: Wenn ich die php API auf "PUT" umbaue, funktionierts auch, jedoch müsste ich eben via "POST" eine Datei auf den Server bekommen.
Mfg
Mit der kostenlosen PocketPC.ch App von meinem RM-937_eu_euro2_936 aus geschrieben.
-
Gehöre zum Inventar
- 09.05.2014, 12:50
- #6
Kann das sein dass wenn du es mit POST machst das "Formularfeld" für den Upload durch den Backgroundservice einfach einen anderen Namen hat statt "filename"? Na ja, ich schau mir dann einfach bei Gelegenheit an was in den Headern deiner Fiddler-Traces steht.
-
Bin hier zuhause
- 09.05.2014, 13:47
- #7
Im Backgroundservice kann ich diesen definieren, so wird er dann auch in meinem Fiddler-Trace angezeigt, in meinem Fall also "Filename". Bin immernoch unterwegs, was mir aber gerade in den Sinn kommt, im Header wird beim BackgroundUploader keine Dateigrösse mitgegeben, im vergleich zum httpClient.
Mfg
Mit der kostenlosen PocketPC.ch App von meinem RM-937_eu_euro2_936 aus geschrieben.
-
Bin hier zuhause
- 10.05.2014, 06:37
- #8
So, nun bin ich endlich am Rechner, hier der jeweilige Fiddler-Trace, mit dem dazugehörigen Code.
Codeauszug httpClient:
Code:var PostClient = new HttpClient(); MultipartFormDataContent bild = new MultipartFormDataContent(); bild.Add(new StreamContent(photoStream), "Filename", fileName); await PostClient.PostAsync(UploadURL, bild) .ContinueWith((postTask) => { postTask.Result.EnsureSuccessStatusCode(); });
HTTP/1.1 200 Fiddler Generated
Date: Thu, 08 May 2014 16:00:03 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Cache-Control: no-cache, must-revalidate
Timestamp: 18:00:03.269
<!doctype html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Fiddler Echo Service</title></head><body style="font-family: arial,sans-serif;"><h1>Fiddler Echo Service</h1><br /><pre>POST / HTTP/1.1
Accept: */*
Content-Length: 1689904
Accept-Encoding: identity
Content-Type: multipart/form-data; boundary="b008dbca-e68a-4c35-bd2d-14666dc3e7d4"
User-Agent: NativeHost
Host: 192.168.1.10:8888
Connection: Keep-Alive
Cache-Control: no-cache
--b008dbca-e68a-4c35-bd2d-14666dc3e7d4
Content-Disposition: form-data; name=Filename; filename="C:\Data\Users\Public\Pictures\Camera Roll\WP_20140503_14_03_25_Pro.jpg"; filename*=utf-8''C%3A%5CData%5CUsers%5CPublic%5CPictures%5CCamera%20Roll%5CWP_20140503_14_03_25_Pro.jpg
Code:BackgroundUploader uploader = new BackgroundUploader(); uploader.SetRequestHeader("Filename", file.Name); UploadOperation upload = uploader.CreateUpload(uri, file); HandleUploadAsync(upload, true);
HTTP/1.1 200 Fiddler Generated
Date: Thu, 08 May 2014 16:44:59 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Cache-Control: no-cache, must-revalidate
Timestamp: 18:44:59.928
<!doctype html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Fiddler Echo Service</title></head><body style="font-family: arial,sans-serif;"><h1>Fiddler Echo Service</h1><br /><pre>POST / HTTP/1.1
Accept: */*
Filename: WP_20140507_001.jpg
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; Microsoft; Virtual) like Gecko
Host: localhost:8888
Content-Length: 21762
Connection: Keep-Alive
Cache-Control: no-cache
-
Gehöre zum Inventar
- 10.05.2014, 13:05
- #9
War das beide Male dasselbe Bild? Beim BackgroundUploader ist die ContentLenngth ja viel geringer (für ein Bild überhaupt sehr Mini). Kann es sein dass man das hochzuladende Bild mit einer anderen URI-Prefix an das Service übergeben muss? Für mich schauts ja grad überhaupt so aus als würden die Daten beim BackgroundService Trace einfach fehlen.
-
Bin hier zuhause
- 10.05.2014, 18:06
- #10
Also das Bild, welches mit dem BackgroundUploader hochgeladen wurde, ist tatsächlich viel kleiner, das stimmt allerdings
so, da es sich dabei nur um ein erstelltes "Foto" aus dem Emulator heraus handelt, das passt also. Allerdings hast du
Recht, da scheinen einige Angaben einfach zu Fehlen, ich kann mir das allerdings nicht erklären. Habe ebenfalls schon
versucht, gewisse Headerdaten noch mitzugeben, leider ohne Erfolg.
Mfg
-
Bin hier zuhause
- 11.05.2014, 15:30
- #11
Nun habe ich mithilfe von SetRequestHeader versucht, die Headerdaten anzupassen, diese werden so auch gesendet, jedoch immernoch kein Erfolg bei der Datenübertragung.
Mfg
Mit der kostenlosen PocketPC.ch App von meinem RM-937_eu_euro2_936 aus geschrieben.
-
Bin hier zuhause
- 14.05.2014, 08:26
- #12
Bisher hatte ich leider immernoch keinen Erfolg. Hat mir noch jemand einen Tip?
Mfg
Mit der kostenlosen PocketPC.ch App von meinem RM-937_eu_euro2_936 aus geschrieben.
Ähnliche Themen
-
Hilfe, SPV ÄRGER!!!!
Von tom im Forum PlaudereckeAntworten: 27Letzter Beitrag: 23.05.2003, 19:36 -
Hilfe! Casio E-125 startet nicht mehr?!!
Von rdkay im Forum PlaudereckeAntworten: 4Letzter Beitrag: 16.05.2003, 15:47 -
Hilfe... Offizieller Unlock funkt. nicht!!!!!
Von Klotenjames im Forum PlaudereckeAntworten: 5Letzter Beitrag: 18.04.2003, 13:35 -
hilfe nur noch sonnenuntergang
Von rigo26 im Forum PlaudereckeAntworten: 7Letzter Beitrag: 09.03.2003, 19:38 -
Hilfe kein Bluetooth Manager mehr!
Von frenzi im Forum PlaudereckeAntworten: 4Letzter Beitrag: 10.01.2003, 12:15
Pixel 10 Serie mit Problemen:...