java - SOAP 设置参数java

标签 java web-services soap parameters request

我正在实现电视列表服务,并决定使用 ROVI 作为我的数据提供商。

他们为我提供了一个 API,允许我通过 SOAP 请求在我的应用程序和他们的服务器之间交换数据。

由于我使用 Java 进行编程,因此我使用 wsimport 来生成使我能够与他们的服务器交互的类。

//Connection
service = new ListingsService();
port = service.getListingsServiceSoap();

我遇到了一个 Google 似乎没有答案的问题。

根据他们的 API,每当我想调用 SOAP 服务时,我都必须将 API key 添加到 url 末尾。

问题是,我不知道该怎么做。使用 wsimport 生成的 stub ,我可以创建一个应有的请求对象;但是 URL 并未按照其规范显示。我当前获取的网址是:http://api.rovicorp.com/v9/listingsservice.asmx需要的是:http://api.rovicorp.com/v9/listingsservice.asmx?apikey=myAPIkey 。我通过打印以下代码获得了它:

System.out.println(port.toString());

尝试运行以下代码:

GetServicesRS servicesRS = port.getServices(getServicesRQ, auth)

产生以下错误:

Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 403: Forbidden

我可以使用什么 java 方法将此参数附加到 SOAP 请求 URL 中。

感谢您的帮助。

编辑。

我仍在努力解决这个问题,并且没有幸运地得到回应,如果有人能指出我的框架方向或可以促进这一点的东西那就太好了!

干杯

最佳答案

我设法使用 BindingProvider 来解决我的问题。

我将以下内容添加到我的代码中:

//Connection
service = new ListingsService();
port = service.getListingsServiceSoap();
BindingProvider bindingProvider = (BindingProvider) port;
bindingProvider.getRequestContext()
.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
"http://api.rovicorp.com/v9/listingsservice.asmx?apikey=" + APIKey);

通过上述代码,API 调用成功:

GetServicesRS servicesRS = port.getServices(getServicesRQ, auth)

希望它对将来的人有所帮助。

关于java - SOAP 设置参数java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20346616/

相关文章:

java - Eclipse 无法识别动态 Web 项目中的 Jsoup JAR 文件

java - 努力正确格式化字符串

web-services - 如何从 IIS 7.5 中的 Delphi XE WebService 获取 SOAP/WSDL?

java - 无法执行目标 org.apache.cxf :cxf-codegen-plugin:3. 0.13:wsdl2java

java - 用户证书身份验证无法正常工作的 HTTPS Apache CXF 上的 Soap

java - 提供wsdl url并获取该wsdl url中的所有请求

java - 如何更改 .JSON 文件中的某些值,然后在保留 JSON 格式的情况下将其写回? ( java )

java - Spring MVC - 表单提交而不绑定(bind)对象

node.js - 主体错误: Implementing ngx-soap client in Angular 4

java - Apache CXF bean 验证错误详细信息