Schnellstart: Verwenden des Bing-Websuche-SDK für JavaQuickstart: Use the Bing Web Search SDK for Java

Das Bing-Websuche-SDK erleichtert die Integration der Bing-Websuche in Ihre Java-Anwendung.The Bing Web Search SDK makes it easy to integrate Bing Web Search into your Java application. In dieser Schnellstartanleitung erfahren Sie, wie Sie eine Anforderung senden, eine JSON-Antwort empfangen und die Ergebnisse filtern und analysieren.In this quickstart, you'll learn how to send a request, receive a JSON response, and filter and parse the results.

Möchten Sie den Code sofort sehen?Want to see the code right now? Die Beispiele zum Bing-Websuche-SDK für Java sind auf GitHub verfügbar.The Bing Web Search SDK for Java samples are available on GitHub.

Für diesen Schnellstart wird ein Azure Cognitive Services-Konto mit Bing-Suche-APIs benötigt.This quickstart requires an Azure Cognitive Services account with Bing Search APIs. Wenn Sie über kein Konto verfügen, können Sie über die kostenlose Testversion einen Abonnementschlüssel abrufen.If you don't have an account, you can use the free trial to get a subscription key.

Siehe auch Cognitive Services-Preise – Bing-Suche-APISee also Cognitive Services Pricing - Bing Search API.

VoraussetzungenPrerequisites

Im Folgenden sind die Tools aufgeführt, die Sie zum Ausführen dieser Schnellstartanleitung benötigen:Here are a few things that you'll need before running this quickstart:

Erstellen eines Projekts und Einrichten Ihrer POM-DateiCreate a project and set up your POM file

Erstellen Sie mit Maven oder einem anderen Buildautomatisierungstool ein neues Java-Projekt.Create a new Java project using Maven or your favorite build automation tool. Wenn Sie Maven verwenden, fügen Sie Ihrer POM-Datei (Projektobjektmodell) die folgenden Zeilen hinzu.Assuming that you're using Maven, add the following lines to your Project Object Model (POM) file. Ersetzen Sie alle Instanzen von mainClass durch Ihre Anwendung.Replace all instances of mainClass with your application.

<build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.4.0</version>
        <configuration>
          <!--Your comment
            Replace the mainClass with the path to your java application.
            It should begin with com and doesn't require the .java extension.
            For example: com.bingwebsearch.app.BingWebSearchSample. This maps to
            The following directory structure:
            src/main/java/com/bingwebsearch/app/BingWebSearchSample.java.
          -->
          <mainClass>com.path.to.your.app.APP_NAME</mainClass>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>attached</goal>
            </goals>
            <configuration>
              <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
              </descriptorRefs>
              <archive>
                <manifest>
                  <!--Your comment
                    Replace the mainClass with the path to your java application.
                    For example: com.bingwebsearch.app.BingWebSearchSample.java.
                    This maps to the following directory structure:
                    src/main/java/com/bingwebsearch/app/BingWebSearchSample.java.
                  -->
                  <mainClass>com.path.to.your.app.APP_NAME.java</mainClass>
                </manifest>
              </archive>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure</artifactId>
      <version>1.9.0</version>
    </dependency>
    <dependency>
      <groupId>commons-net</groupId>
      <artifactId>commons-net</artifactId>
      <version>3.3</version>
    </dependency>
    <dependency>
      <groupId>com.microsoft.azure.cognitiveservices</groupId>
      <artifactId>azure-cognitiveservices-websearch</artifactId>
      <version>1.0.1</version>
    </dependency>
  </dependencies>

Deklarieren von AbhängigkeitenDeclare dependencies

Öffnen Sie Ihr Projekt in Ihrer bevorzugten IDE oder in Ihrem bevorzugten Editor, und importieren Sie die folgenden Abhängigkeiten:Open your project in your favorite IDE or editor and import these dependencies:

import com.microsoft.azure.cognitiveservices.search.websearch.BingWebSearchAPI;
import com.microsoft.azure.cognitiveservices.search.websearch.BingWebSearchManager;
import com.microsoft.azure.cognitiveservices.search.websearch.models.ImageObject;
import com.microsoft.azure.cognitiveservices.search.websearch.models.NewsArticle;
import com.microsoft.azure.cognitiveservices.search.websearch.models.SearchResponse;
import com.microsoft.azure.cognitiveservices.search.websearch.models.VideoObject;
import com.microsoft.azure.cognitiveservices.search.websearch.models.WebPage;

Wenn Sie das Projekt mit Maven erstellt haben, sollte das Paket bereits deklariert sein.If you created the project with Maven, the package should already be declared. Falls nicht, deklarieren Sie das Paket.Otherwise, declare the package now. Beispiel:For example:

package com.bingwebsearch.app

Deklarieren der BingWebSearchSample-KlasseDeclare the BingWebSearchSample class

Deklarieren Sie die Klasse BingWebSearchSample.Declare the BingWebSearchSample class. Sie enthält den Großteil unseres Codes, einschließlich der Methode main.It will include most of our code including the main method.

public class BingWebSearchSample {

// The code in the following sections goes here.

}

Erstellen einer AnforderungConstruct a request

Die Methode runSample in der Klasse BingWebSearchSample erstellt die Anforderung.The runSample method, which lives in the BingWebSearchSample class, constructs the request. Kopieren Sie den folgenden Code in Ihre Anwendung:Copy this code into your application:

public static boolean runSample(BingWebSearchAPI client) {
    /*
     * This function performs the search.
     *
     * @param client instance of the Bing Web Search API client
     * @return true if sample runs successfully
     */
    try {
        /*
         * Performs a search based on the .withQuery and prints the name and
         * url for the first web pages, image, news, and video result
         * included in the response.
         */
        System.out.println("Searched Web for \"Xbox\"");
        // Construct the request.
        SearchResponse webData = client.bingWebs().search()
            .withQuery("Xbox")
            .withMarket("en-us")
            .withCount(10)
            .execute();

// Code continues in the next section...

Verarbeiten der AntwortHandle the response

Als Nächstes fügen Sie Code zum Analysieren der Antwort und Ausgeben der Ergebnisse hinzu.Next, let's add some code to parse the response and print the results. Der name und die url für die erste Webseite, das erste Bild, den ersten Nachrichtenartikel und das erste Video werden ausgegeben, wenn sie im Antwortobjekt enthalten sind.The name and url for the first web page, image, news article, and video are printed when included in the response object.

/*
* WebPages
* If the search response has web pages, the first result's name
* and url are printed.
*/
if (webData != null && webData.webPages() != null && webData.webPages().value() != null &&
        webData.webPages().value().size() > 0) {
    // find the first web page
    WebPage firstWebPagesResult = webData.webPages().value().get(0);

    if (firstWebPagesResult != null) {
        System.out.println(String.format("Webpage Results#%d", webData.webPages().value().size()));
        System.out.println(String.format("First web page name: %s ", firstWebPagesResult.name()));
        System.out.println(String.format("First web page URL: %s ", firstWebPagesResult.url()));
    } else {
        System.out.println("Couldn't find the first web result!");
    }
} else {
    System.out.println("Didn't find any web pages...");
}
/*
 * Images
 * If the search response has images, the first result's name
 * and url are printed.
 */
if (webData != null && webData.images() != null && webData.images().value() != null &&
        webData.images().value().size() > 0) {
    // find the first image result
    ImageObject firstImageResult = webData.images().value().get(0);

    if (firstImageResult != null) {
        System.out.println(String.format("Image Results#%d", webData.images().value().size()));
        System.out.println(String.format("First Image result name: %s ", firstImageResult.name()));
        System.out.println(String.format("First Image result URL: %s ", firstImageResult.contentUrl()));
    } else {
        System.out.println("Couldn't find the first image result!");
    }
} else {
    System.out.println("Didn't find any images...");
}
/*
 * News
 * If the search response has news articles, the first result's name
 * and url are printed.
 */
if (webData != null && webData.news() != null && webData.news().value() != null &&
        webData.news().value().size() > 0) {
    // find the first news result
    NewsArticle firstNewsResult = webData.news().value().get(0);
    if (firstNewsResult != null) {
        System.out.println(String.format("News Results#%d", webData.news().value().size()));
        System.out.println(String.format("First news result name: %s ", firstNewsResult.name()));
        System.out.println(String.format("First news result URL: %s ", firstNewsResult.url()));
    } else {
        System.out.println("Couldn't find the first news result!");
    }
} else {
    System.out.println("Didn't find any news articles...");
}

/*
 * Videos
 * If the search response has videos, the first result's name
 * and url are printed.
 */
if (webData != null && webData.videos() != null && webData.videos().value() != null &&
        webData.videos().value().size() > 0) {
    // find the first video result
    VideoObject firstVideoResult = webData.videos().value().get(0);

    if (firstVideoResult != null) {
        System.out.println(String.format("Video Results#%s", webData.videos().value().size()));
        System.out.println(String.format("First Video result name: %s ", firstVideoResult.name()));
        System.out.println(String.format("First Video result URL: %s ", firstVideoResult.contentUrl()));
    } else {
        System.out.println("Couldn't find the first video result!");
    }
} else {
    System.out.println("Didn't find any videos...");
}

Deklarieren der main-MethodeDeclare the main method

In dieser Anwendung enthält die main-Methode Code, der den Client instanziiert, subscriptionKey überprüft und runSample aufruft.In this application, the main method includes code that instantiates the client, validates the subscriptionKey, and calls runSample. Geben Sie einen gültigen Abonnementschlüssel für Ihr Azure-Konto ein, bevor Sie fortfahren.Make sure that you enter a valid subscription key for your Azure account before continuing.

public static void main(String[] args) {
    try {
        // Enter a valid subscription key for your account.
        final String subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
        // Instantiate the client.
        BingWebSearchAPI client = BingWebSearchManager.authenticate(subscriptionKey);
        // Make a call to the Bing Web Search API.
        runSample(client);
    } catch (Exception e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
}

Ausführen des ProgrammsRun the program

Im letzten Schritt wird das Programm ausgeführt.The final step is to run your program!

mvn compile exec:java

Bereinigen von RessourcenClean up resources

Denken Sie daran, nach Abschluss dieses Projekts Ihren Abonnementschlüssel aus dem Anwendungscode zu entfernen.When you're done with this project, make sure to remove your subscription key from the program's code.

Nächste SchritteNext steps

Weitere InformationenSee also