2016-04-07 17 views
0

Ich versuche, ein Bild von einem Android-Gerät auf dem Google Appengine Blobstore zu speichern. Was ich bisher getan:BlobstoreService.getUploads gibt immer NULL zurück

  • eine Enpoint (Google Cloud Endpoints) erstellt, die eine Upload-URL zurückgibt (Working)

  • eine POST-Anfrage mit OKHTTP3 Erstellt, die die Bilddatei in einem multipartform sendet (Arbeitet? Vielleicht nicht?)

  • Ein Servlet erstellt, das an die Upload-URL übergeben wird, um die Schlüssel abzurufen. (Es wird aufgerufen, aber getUpload gibt immer null.)

Ich denke, vielleicht ist es mit dem zu tun hat, wie ich schicke meine POST-Anfrage?

OkHttpClient client = new OkHttpClient(); 

    RequestBody body = new MultipartBody.Builder() 
      .setType(MultipartBody.FORM) 
      .addPart(
        Headers.of("Content-Disposition", "form-data; name=\"photo\""), 
        RequestBody.create(MediaType.parse("image/jpeg"), file) 
      ) 

      .build(); 

    Request request = new Request.Builder() 
      .url(url) 
      .post(body) 
      .build(); 

In meinem Servlet kann ich ein param namens "Foto" sehen, aber Aufruf:

List<BlobKey> blobs = blobstoreService.getUploads(req).get("photo"); 

NULL zurück. Zero BlobKeys ...

Ich bin sicher, ich vermisse etwas dumm ... Jede Hilfe wäre unglaublich geschätzt!

Antwort

0

Also war es am Ende die POST-Anfrage.

RequestBody body = new MultipartBody.Builder() 
     .setType(MultipartBody.FORM) 
     .addFormData("photo", "photoname") 
     .addFormData("photo", "photo.jpg", RequestBody.create(MediaType.parse("image/jpeg"), file) 
     .build(); 
Verwandte Themen