gpt4 book ai didi

java - SOAP 设置参数java

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:08 24 4
gpt4 key购买 nike

我正在实现电视列表服务,并决定使用 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/

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