984 Stimmen

Senden einer Datei und zugehöriger Daten an einen RESTful WebService vorzugsweise als JSON

In einer Anwendung, die ich entwickle RESTful API und wir wollen den Client, um Daten als JSON senden. Ein Teil dieser Anwendung erfordert, dass der Client eine Datei (normalerweise ein Bild) sowie Informationen über das Bild hochlädt.

Es fällt mir schwer, herauszufinden, wie dies in einer einzigen Anfrage geschieht. Ist es möglich, Base64 die Dateidaten in eine JSON-Zeichenfolge? Muss ich 2 Anfragen an den Server stellen? Sollte ich JSON nicht für diese Aufgabe verwenden?

Als Randbemerkung, wir sind mit Grails auf dem Backend und diese Dienste werden von nativen mobilen Clients (iPhone, Android, etc.) zugegriffen, wenn etwas davon einen Unterschied macht.

3 Stimmen

Wie geht man also am besten vor?

8 Stimmen

Senden Sie die Metadaten im URL-Abfrage-String anstelle von JSON.

0 Stimmen

-9voto

Mak Kul Punkte 29

Bitte vergewissern Sie sich, dass Sie über die folgende Einfuhr verfügen. Natürlich auch andere Standardimporte

import org.springframework.core.io.FileSystemResource

    void uploadzipFiles(String token) {

        RestBuilder rest = new RestBuilder(connectTimeout:10000, readTimeout:20000)

        def zipFile = new File("testdata.zip")
        def Id = "001G00000"
        MultiValueMap<String, String> form = new LinkedMultiValueMap<String, String>()
        form.add("id", id)
        form.add('file',new FileSystemResource(zipFile))
        def urld ='''http://URL''';
        def resp = rest.post(urld) {
            header('X-Auth-Token', clientSecret)
            contentType "multipart/form-data"
            body(form)
        }
        println "resp::"+resp
        println "resp::"+resp.text
        println "resp::"+resp.headers
        println "resp::"+resp.body
        println "resp::"+resp.status
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X