Schnellstart: Suchen nach Nachrichten mit dem Bing-News-Suche-SDK für JavaQuickstart: Search for news with the Bing News Search SDK for Java

Verwenden Sie diese Schnellstartanleitung, um unter Verwendung des Bing-News-Suche-SDK für Java mit der Suche nach Nachrichten zu beginnen.Use this quickstart to begin searching for news with the Bing News Search SDK for Java. Die Bing-News-Suche verfügt zwar über eine REST-API, die mit den meisten Programmiersprachen kompatibel ist, aber das SDK ist eine einfache Möglichkeit, den Dienst in Ihre Anwendungen zu integrieren.While Bing News Search has a REST API compatible with most programming languages, the SDK provides an easy way to integrate the service into your applications. Den Quellcode für dieses Beispiel finden Sie auf GitHub.The source code for this sample can be found on GitHub.

VoraussetzungenPrerequisites

Installieren Sie die Abhängigkeit für das Bing-News-Suche-SDK mithilfe von Maven, Gradle oder anderen Systemen zum Verwalten von Abhängigkeiten.Install the Bing News Search SDK dependencies using Maven, Gradle, or another dependency management system. Die Maven-POM-Datei erfordert die folgende Deklaration:The Maven POM file requires the following declaration:

    <dependencies>
    <dependency>
        <groupId>com.microsoft.azure.cognitiveservices</groupId>
        <artifactId>azure-cognitiveservices-newssearch</artifactId>
        <version>0.0.1-beta-SNAPSHOT</version>
    </dependency>
    </dependencies>

Sie benötigen ein Cognitive Services-API-Konto mit Zugriff auf die Bing-Suche-APIs.You must have a Cognitive Services API account with access to the Bing Search APIs. Falls Sie nicht über ein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.If you don't have an Azure subscription, you can create an account for free. Vor dem Fortfahren benötigen Sie den Zugriffsschlüssel, der nach dem Aktivieren Ihrer kostenlosen Testversion bereitgestellt wird. Alternativ hierzu können Sie auch den Schlüssel eines kostenpflichtigen Abonnements aus Ihrem Azure-Dashboard verwenden.Before continuing, You will need the access key provided after activating your free trial, or a paid subscription key from your Azure dashboard.

Erstellen und Initialisieren eines ProjektsCreate and initialize a project

Erstellen Sie in Ihrer bevorzugten IDE oder in Ihrem bevorzugten Editor ein neues Java-Projekt, und importieren Sie die folgenden Bibliotheken.Create a new Java project in your favorite IDE or editor, and import the following libraries.

import com.microsoft.azure.cognitiveservices.newssearch.*;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.NewsInner;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.NewsSearchAPIImpl;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.TrendingTopicsInner;
import com.microsoft.rest.credentials.ServiceClientCredentials;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;

Erstellen eines Suchclients und Speichern von AnmeldeinformationenCreate a search client and store credentials

  1. Erstellen Sie eine Methode namens getClient(), die einen neuen NewsSearchAPIImpl-Suchclient zurückgibt.Create a method called getClient() that returns a new NewsSearchAPIImpl search client. Fügen Sie Ihren Endpunkt als ersten Parameter für das neue NewsSearchAPIImpl-Objekt und ein neues ServiceClientCredentials-Objekt zum Speichern Ihrer Anmeldeinformationen hinzu.Add your endpoint as the first parameter for the newNewsSearchAPIImpl object, and a new ServiceClientCredentials object to store your credentials.

    public static NewsSearchAPIImpl getClient(final String subscriptionKey) {
        return new NewsSearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/",
                new ServiceClientCredentials() {
                });
    }
    
  2. Setzen Sie zum Erstellen des ServiceClientCredentials-Objekts die Funktion applyCredentialsFilter() außer Kraft.To create the ServiceClientCredentials object, override the applyCredentialsFilter() function. Übergeben Sie OkHttpClient.Builder an die Methode, und erstellen Sie mithilfe der Methode addNetworkInterceptor() des Generators Ihre Anmeldeinformationen für den SDK-Aufruf.Pass a OkHttpClient.Builder to the method, and use the builder's addNetworkInterceptor() method to create your credentials for the SDK call.

    new ServiceClientCredentials() {
        @Override
        public void applyCredentialsFilter(OkHttpClient.Builder builder) {
            builder.addNetworkInterceptor(
                    new Interceptor() {
                        @Override
                        public Response intercept(Chain chain) throws IOException {
                            Request request = null;
                            Request original = chain.request();
                            // Request customization: add request headers.
                            Request.Builder requestBuilder = original.newBuilder()
                                    .addHeader("Ocp-Apim-Subscription-Key", subscriptionKey);
                            request = requestBuilder.build();
                            return chain.proceed(request);
                        }
                    });
        }
    });
    

Senden und Empfangen einer SuchanforderungSend and receive a search request

  1. Erstellen Sie eine Methode, die getClient() aufruft und eine Suchanforderung an den Bing-News-Suche-Dienst sendet.Create a method that calls getClient() and sends a search request to the Bing News Search service. Filtern Sie die Suche mit den Parametern market und count. Geben Sie dann die folgenden Informationen zum ersten Nachrichtenergebnis aus: Name, URL, Veröffentlichungsdatum, Beschreibung, Anbietername und Gesamtanzahl der geschätzten Übereinstimmungen für Ihre Suche.Filter the search with the market and count parameters, then print information about the first news result: name, URL, publication date, description, provider name, and total number of estimated matches for your search.

    public static void newsSearch(String subscriptionKey)
    {
        NewsSearchAPIImpl client = getClient(subscriptionKey);
        String searchTerm = "Quantum Computing";
    
        NewsInner newsResults = client.searchs().list(searchTerm, null, null, null,
                null, null, 100, null, "en-us",
                null, null, null, null, null,
                null, null);
    
        if (newsResults.value().size() > 0)
        {
            NewsArticle firstNewsResult = newsResults.value().get(0);
    
            System.out.println(String.format("TotalEstimatedMatches value: %d", newsResults.totalEstimatedMatches()));
            System.out.println(String.format("News result count: %d", newsResults.value().size()));
            System.out.println(String.format("First news name: %s", firstNewsResult.name()));
            System.out.println(String.format("First news url: %s", firstNewsResult.url()));
            System.out.println(String.format("First news description: %s", firstNewsResult.description()));
            System.out.println(String.format("First news published time: %s", firstNewsResult.datePublished()));
            System.out.println(String.format("First news provider: %s", firstNewsResult.provider().get(0).name()));
        }
        else
        {
            System.out.println("Couldn't find news results!");
        }
    
    }
    
    
  2. Fügen Sie Ihre Suchmethode zu einer Methode vom Typ main() hinzu, um den Code auszuführen.Add your search method to a main() method to execute the code.

    public static void main(String[] args) {
        String subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
        NewsSearchSDK.newsSearch(subscriptionKey);
    }
    

Nächste SchritteNext steps