我试图从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 ......
我确定我错过了一些愚蠢的东西......任何帮助都会非常感激!
答案 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();