0

http://api.search.live.net/search.wsdl urlの wsdl ファイルを使用して、soap を検索する必要があります。http://courses.coreservlets.com/Course-Materials/pdf/web-services/Axis2-Clients.pdfチュートリアルのように、Apache axis2でEclipseを使用してJavaクライアントファイルを生成しました。このコードをメインに書きました

            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 検索 API が Windows azure に移行したことを知りました。検索 URL にいくつかの変更がありますが、soap タイプのリクエストに関するドキュメントは見つかりませんでした。

助けが必要 ?

4

2 に答える 2

0

bing search から azure への移行、 appid の概念は account key に置き換えられました。http://courses.coreservlets.com/Course-Materials/pdf/web-services/Axis2-Clients.pdfに従い 、以下のコードで appid の代わりにアカウント キーを記述しました。

request.setAppId("APP ID");

クライアントエラーが発生した問題は解決しません。Azure に移行するため、soap 用の新しいチュートリアルを作成する必要があると思います。あなたがくれた URL は 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

Bing 検索にアクセスするには 1) 古い Big Developer Search を使用する 2) Windows Azure Market Place を使用する方法が 2 つあるため、なぜ投稿で Window Azure に言及したのかわかりません。

Windows Azure Data Market から Bing Search AppID を取得した場合、URL は https://api.datamarket.azure.com/Bing/Search/Web?queryになります。

ただし、Bing デベロッパー センターから AppID を取得した場合は、次の URL を使用して 2012 年 8 月 1 日まで引き続き使用できます: http://api.search.live.net/xml.aspx?Appid=App&query

上記のコードに基づいて、Bing 開発者サイトの URL を使用しているため、Windows Azure Data Market 固有ではなく、Bing Search API 2.0 に基づいているため、以下のサンプルを見て、一部の設定が正しくないためコードを修正できます。以下に文書化されています:

Java および API の SOAP インターフェイスでの Live Search API バージョン 2.0 の使用

Windows Azure Market Place から AppID を取得した場合は、AppID などを見つけたのと同じ場所に記載されている方法を使用できます。

于 2012-06-28T19:19:39.510 に答える