Google app engine 为什么GAE BlobstoreService#createUploadUrl(字符串)包含请求查询参数

Google app engine 为什么GAE BlobstoreService#createUploadUrl(字符串)包含请求查询参数,google-app-engine,blobstore,Google App Engine,Blobstore,我正在使用GAE Blobstore,服务器端有球衣。我通过Android向服务器发送GET请求,并包含一个名为logindx的查询参数。我的服务器端代码段如下所示: @Path("/getuploadurl") @GET @Produces(MediaType.TEXT_PLAIN) public Response getUploadUrl(@QueryParam("logindx") Long logIndx ) { BlobstoreService blobstoreServic

我正在使用GAE Blobstore,服务器端有球衣。我通过Android向服务器发送GET请求,并包含一个名为
logindx
的查询参数。我的服务器端代码段如下所示:

@Path("/getuploadurl")
@GET
@Produces(MediaType.TEXT_PLAIN)
public Response getUploadUrl(@QueryParam("logindx") Long logIndx )  {
    BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
    String uurl = blobstoreService.createUploadUrl("/logblobkey"); 
    logger.severe("urltest: " + uurl);

    return Response.ok(uurl).build();
}
问题是我在Android上得到的结果字符串(也被记录)是:

上面上传URL中的部分
?logindx=-43803902306520/
肯定不存在?
createUploadUrl
函数知道如何获取
HttpRequest
对象来提取查询参数吗

问题是当我尝试在android应用程序中使用上述uri时,就像这样:

HttpPost postRequest = new HttpPost(uri);
我得到以下错误:

java.lang.IllegalArgumentException: Illegal character in query at index 253: http://bardroid123.appspot.com/_ah/upload/?logindx=-43803902306520/AMmfu6ZDQr7WenGd0N3ZkbI3zfSl0xPcY56XS5p_VQiS_MWxtTwtc1xm8NbhdrhK-PxopCIolsWci_06DQ3EsUJXSlbiavtJKX9JXT7RU3vTnwj-H0yY5DZKv9hbYR0brfOezaVwob1k/ALBNUaYAAAAAUevBZWOmVC0m1tipSR7Lk9WcwePsXBzf/
更令人困惑的是,当我在本地服务器上执行get请求时(来自App Engine提供的Eclipse),我没有得到
?logindx=-43803902306520/
部分:

在这种情况下,浏览器会返回如下内容:

http://localhost:8888/_ah/upload/agtiYXJkcm9pZDEyM3IbCxIVX19CbG9iVXBsb2FkU2Vzc2lvbl9fGDIM
很明显,它与Android没有任何关系,我也看不出这是如何具体的

任何帮助都将不胜感激

谢谢-来自非洲

编辑:

我现在只需删除uri中的最后一个斜杠(/),查询中的
非法字符
错误就消失了。uri与包含
?logindx=-43803902306520/
部分的Blobstore配合得很好。现在不要紧,但仍然想知道为什么它包含在上传uri中

http://localhost:8888/res/logs/getuploadurl?logindx=1234567.
http://localhost:8888/_ah/upload/agtiYXJkcm9pZDEyM3IbCxIVX19CbG9iVXBsb2FkU2Vzc2lvbl9fGDIM