Snabbstart: Hämta information om bilder med hjälp av REST API för visuell sökning i Bing och JavaQuickstart: Get image insights using the Bing Visual Search REST API and Java

Använd den här snabbstarten för att skapa ditt första anrop till Bing Visual Search API och granska resultaten.Use this quickstart to make your first call to the Bing Visual Search API and view the results. Det här Java-programmet laddar upp en bild-API: et och visar den information som returneras.This Java application uploads an image to the API and displays the information it returns. Även om det här programmet är skriven i Java, är API: et en RESTful-webb-tjänst som är kompatibla med de flesta programmeringsspråk.Though this application is written in Java, the API is a RESTful Web service compatible with most programming languages.

När du laddar upp en lokal avbildning formulärdata måste innehålla den Content-Disposition rubrik.When you upload a local image, the form data must include the Content-Disposition header. Måste du ställa in dess name parametern till ”bild” och du kan ange den filename parametern till valfri sträng.You must set its name parameter to "image", and you can set the filename parameter to any string. Innehållet i formuläret inkludera binära data för avbildningen.The contents of the form include the binary data of the image. Den maximala bildstorlek som du kan ladda upp är 1 MB.The maximum image size you can upload is 1 MB.

--boundary_1234-abcd
Content-Disposition: form-data; name="image"; filename="myimagefile.jpg"

ÿØÿà JFIF ÖÆ68g-¤CWŸþ29ÌÄøÖ‘º«™æ±èuZiÀ)"óÓß°Î= ØJ9á+*G¦...

--boundary_1234-abcd--

Nödvändiga komponenterPrerequisites

Du måste ha ett Cognitive Services-API-konto med åtkomst till API:er för Bing-sökresultat.You must have a Cognitive Services API account with access to the Bing Search APIs. Innan du fortsätter måste den åtkomstnyckel som tillhandahållits när du har startat en prenumeration på S9-prisnivån enligt Cognitive Services priser – API för Bing Search.Before continuing, you will need the access key provided after starting a subscription at S9 price tier as shown in Cognitive Services Pricing - Bing Search API.

Så här startar du en prenumeration på Azure-portalen:To start a subscription in Azure portal:

  1. Ange ”BingSearchV7” i den textruta längst upp på Azure-portalen där det står Search resources, services, and docs.Enter 'BingSearchV7' in the text box at the top of the Azure portal that says Search resources, services, and docs.
  2. Under Marketplace i den nedrullningsbara listan väljer du Bing Search v7.Under Marketplace in the drop-down list, select Bing Search v7.
  3. Ange Name för den nya resursen.Enter Name for the new resource.
  4. Välj Pay-As-You-Go-prenumeration.Select Pay-As-You-Go subscription.
  5. Välj prisnivån S9.Select S9 pricing tier.
  6. Starta prenumerationen genom att klicka på Enable.Click Enable to start the subscription.

Skapa och initiera ett projektCreate and initialize a project

  1. Skapa ett nytt Java-projekt i din favorit-IDE eller redigerare och importera följande bibliotek:Create a new Java project in your favorite IDE or editor, and import the following libraries:

    import java.util.*;
    import java.io.*;
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;
    import com.google.gson.JsonObject;
    import com.google.gson.JsonParser;
    
    // HttpClient libraries
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.mime.MultipartEntityBuilder;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClientBuilder;
    
  2. Skapa variabler för din API-slutpunkt, prenumerationsnyckel och sökvägen till din avbildning:Create variables for your API endpoint, subscription key, and the path to your image:

    static String endpoint = "https://api.cognitive.microsoft.com/bing/v7.0/images/visualsearch";
    static String subscriptionKey = "your-key-here";
    static String imagePath = "path-to-your-image";
    

Skapa JSON-parsernCreate the JSON parser

Skapa en metod för att se JSON-svar från API: et mer läsbara med JsonParser:Create a method to make the JSON response from the API more readable using JsonParser:

```java
public static String prettify(String json_text) {
        JsonParser parser = new JsonParser();
        JsonObject json = parser.parse(json_text).getAsJsonObject();
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        return gson.toJson(json);
    }
```

Konstruera sökbegäran och frågaConstruct the search request and query

  1. I den huvudsakliga metoden för ditt program skapar du en HTTP-klient som använder HttpClientBuilder.create().build();:In the main method of your application, create an HTTP client using HttpClientBuilder.create().build();:

    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
    
  2. Skapa en HttpEntity objekt för att överföra avbildningen till API: et:Create an HttpEntity object to upload your image to the API:

    HttpEntity entity = MultipartEntityBuilder
        .create()
        .addBinaryBody("image", new File(imagePath))
        .build();
    
  3. Skapa en httpPost objekt med din slutpunkt och ange huvudet för att använda din prenumerationsnyckel:Create an httpPost object with your endpoint, and set the header to use your subscription key:

    HttpPost httpPost = new HttpPost(endpoint);
    httpPost.setHeader("Ocp-Apim-Subscription-Key", subscriptionKey);
    httpPost.setEntity(entity);
    

Ta emot och bearbeta JSON-svaretReceive and process the JSON response

  1. Använd den HttpClient.execute() metod för att skicka en begäran till API: et och lagra svaren i en InputStream objekt:Use the HttpClient.execute() method to send a request to the API, and store the response in an InputStream object:

    HttpResponse response = httpClient.execute(httpPost);
    InputStream stream = response.getEntity().getContent();
    
  2. Store JSON-sträng och skrivas ut:Store the JSON string, and print the response:

String json = new Scanner(stream).useDelimiter("\\A").next();
System.out.println("\nJSON Response:\n");
System.out.println(prettify(json));

Nästa stegNext steps