在C#中调用REST API(读取JSON数据) | ZappySys博客

作者:API传播员 · 2025-10-12 · 阅读时间:5分钟
本文详细介绍了如何使用ZappySys XML驱动调用SOAP API,包括配置步骤、错误处理和性能优化技巧。通过这些方法,您可以高效地集成SOAP API到您的应用程序或BI工具中。

一. 什么是 SOAP Web 服务?

SOAP(Simple Object Access Protocol)是一种基于 XML 的协议,用于在网络上交换结构化信息。SOAP Web 服务常用于企业级系统的集成,支持跨平台的数据通信。

调用 SOAP Web 服务的基本步骤:

  1. 获取 WSDL 文件或 URL。
  2. 确定准确的 Web 服务 URL。

二. 什么是 WSDL?

WSDL(Web Services Description Language)是一种描述 Web 服务的 XML 文档,包含可调用方法、请求参数、响应结构等元数据信息。

获取 WSDL 的方式:

  • 下载服务提供的 WSDL 文件
  • 使用直接提供的 URL,例如:

    http://api.mycompany.com/hr-soap-service/?wsdl

三. 使用 ZappySys XML 驱动调用 SOAP API

通过 ZappySys ODBC PowerPack 的 XML 驱动,可以直接在 SQL 查询中调用 SOAP API。

1. SQL 查询示例

SELECT * FROM $ 
WITH( 
 Src='http://www.holidaywebservice.com/HolidayService_v2/HolidayService2.asmx' 
 ,DataConnectionType='HTTP' 
 ,CredentialType='Basic' -- 或 SoapWss 
 ,SoapWssPasswordType='PasswordText' 
 ,UserName='myuser' 
 ,Password='pass$$w123' 
 ,Filter='$.soap:Envelope.soap:Body.GetHolidaysAvailableResponse.GetHolidaysAvailableResult.HolidayCode[*]' 
 ,ElementsToTreatAsArray='HolidayCode' 
 ,RequestMethod='POST' 
 ,Header='Content-Type: text/xml;charset=UTF-8 || SOAPAction: "http://www.holidaywebservice.com/HolidayService_v2/GetHolidaysAvailable"' 
 ,RequestData='

    UnitedStates

' 
)

通过此查询,您可以向 SOAP 服务发送 POST 请求并获取响应数据。


四. 使用 SoapUI 测试 SOAP API

在调用 API 之前,建议使用 SoapUI 工具进行测试:

  1. 打开 SoapUI,点击“SOAP”创建新项目。
  2. 输入 WSDL URL,例如:

    http://www.dneonline.com/calculator.asmx?wsdl

  3. 配置 SOAP WSS 凭证或基本认证。
  4. 创建 SOAP 请求体并测试 API 调用。

五. 使用 ZappySys XML 驱动创建 DSN 调用 SOAP API

在 BI 工具或编程语言中调用 SOAP API 时,可通过创建 ODBC DSN 简化配置:

  1. 打开 ODBC 数据源,选择“系统 DSN”标签。
  2. 点击“添加”,选择 ZappySys XML 驱动
  3. 配置 API URL、请求方法和请求体。
  4. 配置 HTTP 认证信息(用户名和密码)。
  5. 设置请求头信息。
  6. 使用 Filter 提取所需的数据节点。

六. 预览响应与生成 SQL 代码

配置完成后,可以预览 SOAP API 响应,并生成适用于 C#、Python 或 Java 的 SQL 代码。

分页示例:

SELECT * FROM $ 
WITH( 
 SRC='https://zappysys.com/downloads/files/test/pagination_nextlink_inarray_1.json' 
 ,NextUrlAttributeOrExpr = '$.nextlink' 
)

七. 错误处理机制

1. 使用错误处理选项

可选择“任何错误都继续”或“URL 无效时继续”,避免数据检索中断。

2. 使用连接重试设置

对于响应不稳定的 Web 服务,可启用连接重试功能:


八. 性能优化建议

  1. 服务器端过滤:减少传输数据量
SELECT * FROM value 
WITH( 
 Src='https://services.odata.org/V3/Northwind/Northwind.svc/Customers?$format=json&$filter=Country eq ''USA''' 
 ,DataFormat='Odata' 
)
  1. 避免复杂 SQL 功能:如 WHEREGROUP BYORDER BY,以减少客户端处理压力。
  2. 启用数据缓存:对不频繁变化的数据使用缓存
SELECT * FROM $ 
WITH( 
 SRC='https://myhost.com/some-api' 
 ,CachingMode='All' 
 ,CacheStorage='File' 
 ,CacheFileLocation='c:\temp\myquery.cache' 
 ,CacheEntryTtl=300 
)
  1. 使用流模式处理大文件
SELECT * FROM $ 
WITH( 
 Filter='$.LargeArray[*]--FAST' 
 ,SRC='https://zappysys.com/downloads/files/test/large_file_100k_largearray_prop.json.gz' 
)

九. 总结

本文详细介绍了如何使用 ZappySys XML 驱动 调用 SOAP API,包括:

  • SOAP 与 WSDL 基础知识
  • 使用 SQL 查询访问 SOAP 服务
  • SoapUI 测试方法
  • DSN 配置与数据提取
  • 错误处理与性能优化技巧

通过这些方法,您可以高效地将 SOAP API 集成到应用程序或 BI 工具中,实现稳定的数据访问与处理。

原文链接: https://zappysys.com/blog/calling-rest-api-in-c/