gpt4 book ai didi

java - 使用端点从谷歌数据存储中删除/删除,非法争论异常,不支持使用非零内容长度删除

转载 作者:行者123 更新时间:2023-11-30 02:45:33 25 4
gpt4 key购买 nike

我正在尝试从数据存储中删除对象(使用云端点)

我知道连接有效,因为我可以毫无问题地拉动/插入对象

但是,当我尝试使用各种方法删除时,我得到了相同的异常

java.lang.illegalArgumentException:DELETE with non-zero content length is not supported

方法 1(使用原始数据存储服务和我在插入项目时存储的 key ):

@ApiMethod(name = "removeRPurchase")
public RPurchase removeRPurchase(RPurchase purchase) {
NamespaceManager.set(purchase.getAccount());
DatastoreService d=DatastoreServiceFactory.getDatastoreService();
Key k=KeyFactory.stringToKey(purchase.getKeyrep());
try {
d.delete(k);
} catch (Exception e) {
e.printStackTrace();
purchase=null;
}
return purchase;
}

方法二

@ApiMethod(name = "removeRPurchase")
public RPurchase removeRPurchase(RPurchase purchase) {
NamespaceManager.set(purchase.getAccount());
Key k=KeyFactory.stringToKey(purchase.getKeyrep());
EntityManager mgr = getEntityManager();
RPurchase removed=null;
try {
RPurchase rpurchase = mgr.find(RPurchase.class, k);
mgr.remove(rpurchase);
removed=rpurchase;
} finally {
mgr.close();
}
return removed;
}

我还尝试了实体管理器和 Id 的各种变体,但都具有相同的异常

我传入的对象确实包含帐户中的命名空间,并且它确实包含与对象关联的 key 的“KeytoString”

端点在 AsyncTask endpoint.removeRPurchase(p).execute() 中应该被调用;

感谢任何帮助建议

最佳答案

使您的 API 方法成为这样的 POST 方法:

@ApiMethod(name = "removeRPurchase" path = "remove_r_purchase", httpMethod = ApiMethod.HttpMethod.POST)
public RPurchase removeRPurchase(RPurchase purchase) {
NamespaceManager.set(purchase.getAccount());
DatastoreService d=DatastoreServiceFactory.getDatastoreService();
Key k=KeyFactory.stringToKey(purchase.getKeyrep());
try {
d.delete(k);
} catch (Exception e) {
e.printStackTrace();
purchase=null;
}
return purchase;
}

我遇到了同样的问题,因为我使用的是 httpMethod = ApiMethod.HttpMethod.DELETE。它给出的错误是正确的。只需将其更改为 POST 并在该 API 方法中执行任何您想要的操作,例如删除实体、返回实体等。

关于java - 使用端点从谷歌数据存储中删除/删除,非法争论异常,不支持使用非零内容长度删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25102061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com