BlobstoreService.getUploads始终返回NULL

时间:2016-04-07 18:18:52

标签: java android google-app-engine servlets blobstore

我试图从Android设备将图像存储到Google Appengine Blobstore。到目前为止我做了什么:

  • 创建了一个返回上传网址(工作)的Enpoint(Google Cloud Endpoints)

  • 使用OKHTTP3创建一个POST请求,该请求以多部分形式发送图像文件(工作?可能不是?)

  • 创建一个Servlet,传递给上传URL以处理获取密钥。 (它被调用,但getUpload总是返回null。)

我想也许这与我发送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");

返回null。 Zero BlobKeys ......

我确定我错过了一些愚蠢的东西......任何帮助都会非常感激!

1 个答案:

答案 0 :(得分: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();