gpt4 book ai didi

c# - 使用 Odata 服务并获取 JSON 格式的结果

转载 作者:太空狗 更新时间:2023-10-29 20:58:54 25 4
gpt4 key购买 nike

我正在使用 DataServiceContext 使用 odata 服务,并希望以 json 格式返回数据。

我看起来像这样: Odata Query with DataServiceContext and get result as json

如果我尝试在发送请求事件中添加任何请求 header 。我在 fiddler 中看不到那个标题。虽然我已经确认事件正在触发。

我遇到了“context.Format.usejson”并尝试搜索它但没有找到任何我能理解的东西。有人可以帮我吗? Using ODataLib to call a WCF Data Services service operation and JSON

我的目标是使用 OData 服务并使用 DataServiceContext 获取 JSON 格式的结果。

最佳答案

注意:只有当您的服务的最大协议(protocol)版本为 3 或更高时,这些步骤才有效。 OData 版本 3 引入了一种新的 JSON 格式,而 WCF 数据服务客户端仅支持这种 JSON 格式。 (旧的 JSON 有效负载在顶部有类似 "__metadata""d":{...} 之类的东西。在新的 JSON 格式中,您会看到类似“odata.metadata”“odata.type”等)

首先,确保您拥有 5.1 版或更高版本的 WCF 数据服务客户端库(Visual Studio 附带旧版本)和使 Visual Studio 中的“添加服务引用”正常工作的更新版本的工具。

您可以在此处下载最新的工具安装程序:http://www.microsoft.com/en-us/download/details.aspx?id=35840 .

安装后,我建议通过在 NuGet 包管理器控制台中发出以下命令来升级到最新版本的 WCF 数据服务客户端:

Install-Package Microsoft.Data.Services.Client

升级到最新的客户端库后,您应该能够在客户端中毫无问题地使用 JSON。在 Visual Studio 中右键单击您的项目,选择“添加服务引用”并输入服务的元数据文档的 URL。在 v5.1 及更高版本中,这将拉取支持 JSON 所需的完整服务模型。

“添加服务引用”将自动生成 DataServiceContext 的子类。 (您可以通过在 Visual Studio 的解决方案资源管理器中选择“显示所有文件”并展开服务引用背后的代码来查看此生成的代码。)例如,当我对 http://执行“添加服务引用”时services.odata.org/V3/OData/OData.svc/$metadata,客户端库生成一个名为DemoService的类。使用该派生类而不是直接使用 DataServiceContext,您只需调用 .Format.UseJson() 即可。例如:

var context = new DemoService(new Uri("http://services.odata.org/V3/OData/OData.svc");
context.Format.UseJson();

关于c# - 使用 Odata 服务并获取 JSON 格式的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17059864/

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