2016-04-07 2 views
0

Я пытаюсь сохранить изображение в Google Appengine Blobstore с устройства Android. То, что я сделал до сих пор:BlobstoreService.getUploads всегда возвращает NULL

  • создал Enpoint (Google Cloud Endpoints), который возвращает URL загрузки (Рабочий)

  • Создан запрос POST с OKHTTP3, который отправляет файл изображения в multipartform (Работает? Может быть, нет?)

  • Создал сервлет, который передается URL-адресу для загрузки, чтобы обрабатывать ключи. (Она вызывается, но getUpload всегда возвращает нуль.)

Я имею в виду, может быть, это связано с тем, как я посылаю мой запрос POST?

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(); 

В моей Servlet я могу видеть из параметров под названием "фото", но вызов:

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

возвращает нуль. Zero BlobKeys ...

Я уверен, что мне не хватает чего-то немого ... Любая помощь будет невероятно оценена!

ответ

0

Так что в итоге это был запрос POST.

RequestBody body = new MultipartBody.Builder() 
     .setType(MultipartBody.FORM) 
     .addFormData("photo", "photoname") 
     .addFormData("photo", "photo.jpg", RequestBody.create(MediaType.parse("image/jpeg"), file) 
     .build(); 
Смежные вопросы