2017-02-09 3 views
1

Ich verwende Refit in meiner C# -Anwendung, um mit einer REST-API zu interagieren, und die API-Methode hat einen Aufruf, der ein JPG-Bild zurückgibt. Ich möchte dieses Bild mit Refit herunterladen und es als Byte-Array erhalten, aber es scheint eine verstümmelte Zeichenfolge zurückzugeben. Siehe unten. Siehe unten Interface-Methode für das Herunterladen des BildesRefit (C#) - Bild wird heruntergeladen

[Get("/Photos/{id}")] 
Task<string> DownloadPhoto(Guid id); 

Ich habe versucht, die Zeichenfolge als Base64-String Parsen aber das hat nicht funktioniert, so dass ich davon ausgehen, es ist nicht so. Irgendwelche Ideen?

EDIT: Erste Zeile der verstümmelten Antwort hier. Hinweis: Wenn Sie in einem Browser zur selben URL gehen, funktioniert es einwandfrei und zeigt das Bild

\ 0 \ u0010JFIF \ 0 \ u0001 \ u0001 \ 0 \ 0H \ 0H \ 0 \ 0 \ 0XExif \ 0 \ 0MM \ 0 * 0 \ 0 \ 0.0 \ u0002 \ u0001 \ u0012 \ 0 \ u0003 \ 0 \ 0 \ 0 \ u0001 \ 0 \ u0001 \ 0 \ 0 i \ 00004 \ 0 \ 0 \ 0 \ u0001 \ 0 \ 0 \ 0 & \ 0 \ 0 \ 0 \ 0 \ 0 \ u0003e \ u0001 \ 0 \ u0003 \ 0 \ 0 \ u0001 \ 0 \ u0001 \ 0 \ 0 \ \ u0002 \ 0 \ u0004 \ 0 \ 0 \ 0 \ u0001 \ 0 \ 0 \ u0002X∞ \ u0003 \ 0 \ u0004 \ 0 \ 0 \ 00001 \ 0 \ 0 \ u0003 \ 0 \ 0 \ 0 \ 0 \ 08Photoshop 3.0 \ 08BIM \ u0004 \ u0004 \ 0 \ 0 \ 0 \ 0 \ 08BIM \ u0004% \ 0 \ 0 \ 0 \ 0 \ o0010 \ u001d \ \ \ \ \ \ u0004 \ \ \ B ~ \ 0 \ u0011 \ b \ u0003 \ u00011 \ u0003 \ u0001 \ "\ 0 \ u0001 \ u0011 \ u0001 \ u0003 \ u0011 \ u0001e \ u003f

+0

Ich denke, wir müssten wissen, wie die Daten kodiert wird in den String, um sie zu entschlüsseln. Was enthält diese Zeichenfolge eigentlich? – David

+0

Es ist sehr lang, also habe ich die ersten paar Zeilen eingefügt – Chris

+0

@Chris Sie könnten den vollständigen Inhalt auf einige Io-Dump-Site hochladen – Dbl

Antwort

0

Ich habe gearbeitet Dies ist der Rückgabetyp muss Aufgabe sein, die dann aus der Content-Eigenschaft gelesen werden kann obwohl anks für die Hilfe!

1

Was für mich gearbeitet wurde das Verfahren als Rückkehr Task<HttpContent> erklärt hat, und dann können Sie die Daten aus der zurück HttpContent Instanz in einer Vielzahl von Arten abrufen.

Zum Beispiel:

Task<HttpContent> DownloadPhoto(Guid id); 

Und dann:

HttpContent content = await DownloadPhoto(guid); 
byte[] bytes = await content.ReadAsByteArrayAsync(); 
Verwandte Themen