我的问题与getting blobstore to callback to endpoint method类似,但他/她没有回复。我实际上也写了我的代码。我创建了我的回调网址
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
String url = blobstoreService.createUploadUrl("/loadImages");
然后我创建了我的端点
@ApiMethod(name = "loadImages", httpMethod = HttpMethod.POST)
public void loadImages(javax.servlet.http.HttpServletRequest req) {
//…. get blob key etc.
}
然后当blobstore进行回调调用时,我的服务器上出现错误:
No handlers matched this URL. (404)
有没有人知道传递给blobstoreService.createUploadUrl
的内容,所以它由我的端点方法处理?
我也尝试将”/loadImages”
更改为"/_ah/spi/com.company.package.ApiName.loadImages”
,以便它看起来像其他路径,但这也不起作用。然后我尝试了"_ah/api/apiname/1/loadImages”
:没有。
注意:我不是在寻找blobstore / endpoint的替代方案。当我使用简单的servlet接收回调时,它可以工作。但是servlet只会使我的其他端点代码变得贬值。
答案 0 :(得分:1)
我担心你只能使用servlet来处理这种类型的回调。我一直在寻找几个小时的解决方案,并找到this topic。
简而言之:
表单必须包含文件上载字段,并且表单的enctype必须包含 设置为 multipart / form-data 。 API ... 将重写的请求传递给您的应用程序 将路径指定为blob键。
由于端点没有(据我所知)接受 multipart / form-data 一个有效的编码,这将无法正常工作。您看到的错误消息是 因为Endpoint期待JSON。