我尝试连接到 Yahoo 网络服务。我通过axis2生成了类。我现在面临的问题是,Web 服务在标头中需要一个特定的键值对,而我绝对不能这样做。我在网上搜索并发现了不同的可能性——它们都不适合我。最有希望的是几乎在本页末尾的帖子,Claude Coulombe 建议更改生成的存根的代码,但这也失败了。谁能告诉我如何解决这个问题?
编辑
使用 Options 的建议方式产生了以下异常:
Exception in thread "main" org.apache.axis2.AxisFault: Address information does not exist in the Endpoint Reference (EPR).The system cannot infer the transport mechanism.
这是我的代码:
val stub = new IndexToolsApiServiceStub("https://api.web.analytics.yahoo.com/IndexTools/services/IndexToolsApiV3")
val client = stub._getServiceClient
val options = new Options
val list = new ArrayList[Header]()
val header = new Header
header.setName("YWA_API_TOKEN")
header.setValue("NOTtheREALvalue")
list.add(header)
options.setProperty(HTTPConstants.HTTP_HEADERS, list)
client.setOptions(options)
stub._setServiceClient(client)