gpt4 book ai didi

c# - 周杰伦数据。 OData v.3 操作 POST 参数接收为空

转载 作者:行者123 更新时间:2023-11-30 17:53:16 24 4
gpt4 key购买 nike

我的 OData POST 操作接收参数为空,因为它从 JayData 客户端获取它们作为正文的一部分,并期望它们作为 URI 的一部分。

我已经创建了一个基于 WCF Data Services 5.6.0 的 OData 服务和 Llblgen Pro 4.0 (现在就是the best .Net ORM)。它有一个 POST Action :

[WebInvoke(Method = "POST")]
public void DeletePeople(string guidsToDelete) {...}

OData v.3 标准不支持将参数作为正文的一部分传递给 POST 操作,但是 expect them to be in the queryString part of the URI .也就是说,在 System.Data.Services.Client 中,您必须将它们设置为 UriOperationParameter 而不是 BodyOperationParameter。

我可以在 JayData 的 ServiceOperation 定义中配置将参数发送到哪里,还是我必须假定它现在不支持带参数的 POST?

// This works, of course :-)
// JayData client. EntityContext definitions. Changed to GET instead of POST
'DeletePeople': { type: $data.ServiceOperation, method: 'GET', params: [{ name: 'guidsToDelete', type: 'Edm.String' }] }

// Updated server operation (not action any more):
[WebGet]
public void DeletePeople(string guidsToDelete)

TIA,

雷斯特

最佳答案

JayData 现在希望通过 WebGet 属性发布服务操作。你对 OData 标准是正确的,它确实期望 URL 参数中的 POST 操作的参数,但这很奇怪,因为经典的 WCF 和 WebAPI 都在主体中使用参数......这是一个标准,所以必须遵循。如果您不能使用 WebGet 属性,请随意提出支持 POST 调用方法的功能:

关于c# - 周杰伦数据。 OData v.3 操作 POST 参数接收为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18528169/

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