0

我需要使用http://api.search.live.net/search.wsdl url处的 wsdl 文件对肥皂进行搜索。我使用 eclipse 和 apache axis2 来生成 java 客户端文件,如http://courses.coreservlets.com/Course-Materials/pdf/web-services/Axis2-Clients.pdf教程。我主要写了这段代码

            BingServiceStub stub = new BingServiceStub("http://api.search.live.net:80/soap.asmx");
            stub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, false);
            BingServiceStub.SearchRequest request = new BingServiceStub.SearchRequest();
            request.setQuery("blahblah");
            request.setAppId("APP ID");
//          request.setAdult(BingServiceStub.AdultOption.Moderate);
//          request.setImage(null);
//          request.setMarket("2.0");
            SourceType type = SourceType.Web;
            ArrayOfSourceType types = new ArrayOfSourceType();
            types.addSourceType(type);
            request.setSources(types);
            BingServiceStub.SearchRequestE requestE = new BingServiceStub.SearchRequestE();
            requestE.setParameters(request);
            BingServiceStub.SearchResponseE response = stub.search(requestE);

但我得到了这个错误

org.apache.axis2.AxisFault: Client error
    at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531)
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
    at com.microsoft.schemas.livesearch._2008._03.search.BingServiceStub.search(BingServiceStub.java:182)
    at client.BingServiceClient.main(BingServiceClient.java:40)

我了解到 bing search api 已迁移到 windows azure。搜索网址有一些变化,但我找不到有关肥皂类型请求的文档。

需要帮忙 ?

4

2 回答 2

0

从 bing 搜索迁移到 azure,appid 概念替换为 account key 。我按照http://courses.coreservlets.com/Course-Materials/pdf/web-services/Axis2-Clients.pdf 并在下面的代码中写了帐户密钥而不是 appid

request.setAppId("APP ID");

它不能解决我遇到客户端错误的问题。我认为由于迁移到天蓝色,必须为肥皂编写一个新教程。你给我的网址是 2009 年写的http://www.bing.com/community/site_blogs/b/developer/archive/2009/05/28/using-the-live-search-api-version-2-0 -beta-with-java-and-the-api-s-soap-interface.aspx
它是旧的。

于 2012-06-28T22:46:08.617 回答
0

我不确定您为什么在帖子中引用了 Window Azure,因为您有两种访问 Bing 搜索的方法 1) 使用旧的 Big Developer Search 2) Windows Azure Market Place

如果您从 Windows Azure 数据市场获得 Bing 搜索 AppID,则 URL 为 https://api.datamarket.azure.com/Bing/Search/Web?query

但是,如果您从 Bing 开发人员中心获得了 AppID,那么在 2012 年 8 月 1 日之前,您仍然可以使用以下 URL: http ://api.search.live.net/xml.aspx?Appid=App&query

根据您上面的代码,您使用的是 Bing Developer 站点 URL,因此它不是 Windows Azure 数据市场特定的,并且基于 Bing Search API 2.0,因此您可以查看下面的示例并修复您的代码,因为某些设置不正确记录如下:

将 Live Search API 2.0 版与 Java 和 API 的 SOAP 接口一起使用

如果您从 Windows Azure Market Place 获得了您的 AppID,那么您可以使用在找到您的 AppID 等的相同位置描述的方法。

于 2012-06-28T19:19:39.510 回答