AW: BackgroundUploader Hilfe
Was ist denn genau das Problem mit dem Header? Hast du evtl. alternativ die Möglichkeit die PHP-Seite anzupassen?
AW: BackgroundUploader Hilfe
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.
AW: BackgroundUploader Hilfe
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.
AW: BackgroundUploader Hilfe
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.
AW: BackgroundUploader Hilfe
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.
AW: BackgroundUploader Hilfe
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.
AW: BackgroundUploader Hilfe
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();
});
Und hier der damit ausgegebene Fiddler-Trace:
Zitat:
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
Dann hier der Code des BackgroundUploaders:
Code:
BackgroundUploader uploader = new BackgroundUploader();
uploader.SetRequestHeader("Filename", file.Name);
UploadOperation upload = uploader.CreateUpload(uri, file);
HandleUploadAsync(upload, true);
Und der mit dem BackgroundUploader ausgegebene Fiddler-Trace:
Zitat:
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
Mfg
AW: BackgroundUploader Hilfe
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.
AW: BackgroundUploader Hilfe
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
AW: BackgroundUploader Hilfe
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.
AW: BackgroundUploader Hilfe
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.