Web 服务通常通过 HTTP 协议使用 SOAP。在此情况下,将发送 SOAP 信封。集合和其他复杂对象在 SOAP 信封中捆绑时,ASCII 数据结构会变得难以读取和编辑。初级开发人员不应尝试直接操作 SOAP 信封来构建 Web 服务客户端。经验丰富的开发人员通常不会在 SOAP 信封级别构建 Web 服务客户端。这样操作很枯燥,且容易出错。因此,所有主要的编程语言均提供 Web 服务开发包。在 Silk Central 中,Java API for XML Web Services (JAX-WS) 用于构建使用 SOAP 消息进行通信的 Web 服务和客户端。
无论是哪一种实施语言(Java、C++、C#、Perl 或 Python),构建 Web 服务客户端通常遵循相同的模式:
示例:wsimport -s <生成的存根位置> -p <目标包> <WSDL>
wsimport 工具生成多种类,以支持 Web 服务的客户端。如果 YourWebService是服务的名称,则可以预期以下类别输出:
要生成 JAX-WS 客户端以访问 Silk Central Web 服务,请创建一个名为 YourWebServiceClient 的新 Java 类。必须通过一个端口绑定到 Web 服务;端口是本地对象,用作远程服务代理。请注意,端口是通过在上一步中执行 wsimport 工具创建的。要检索此代理,请对服务调用 getRequirementsServicePort 方法:
// Bind to the Requirements service RequirementsServiceService port = new RequirementsServiceService (new URL("http", mHost, mPort, "/Services1.0/jaxws/requirements?wsdl")); RequirementsService requirementsService = port.getRequirementsServicePort();
要使用 Web 服务进行身份验证,请在 Silk Central UI 的用户设置页面中生成 Web 服务令牌。要访问此页面,请将鼠标光标悬停在 Silk Central 菜单中的用户名上,然后选择用户设置。
您还可以通过传递用户名和密码来调用服务的 logonUser 方法,以获取会话 ID:
// Login to Silk Central and get session ID String sessionId = requirementsService.logonUser(mUsername, mPassword);