Início Rápido: Chamar o ponto de extremidade da Pesquisa Personalizada do Bing usando o Java
Aviso
Em 30 de outubro de 2020, as APIs de Pesquisa do Bing foram migradas dos serviços de IA do Azure para os Serviços de Pesquisa do Bing. Esta documentação é fornecida apenas para referência. Para obter a documentação atualizada, consulte a documentação da API de pesquisa do Bing. Para obter instruções sobre como criar novos recursos do Azure para a Pesquisa do Bing, consulte Criar um recurso de Pesquisa do Bing por meio do Azure Marketplace.
Use este início rápido para saber como solicitar os resultados da pesquisa na instância da Pesquisa Personalizada do Bing. Embora esse aplicativo seja escrito em Java, a API de Pesquisa Personalizada do Bing é um serviço Web RESTful compatível com a maioria das linguagens de programação. O código-fonte deste exemplo está disponível no GitHub.
Pré-requisitos
Uma instância da Pesquisa Personalizada do Bing. Para saber mais, confira Início Rápido: Criar a primeira instância da Pesquisa Personalizada do Bing.
O Java Development Kit mais recente.
Criar um recurso do Azure
Comece a usar a API de Pesquisa Personalizada do Bing criando um dos recursos do Azure a seguir.
Recurso de Pesquisa Personalizada do Bing
- Disponível por meio do portal do Azure até que você exclua o recurso.
- Use o tipo de preço gratuito para experimentar o serviço e atualize mais tarde para uma camada paga para produção.
Recurso de vários serviços
- Disponível por meio do portal do Azure até que você exclua o recurso.
- Use a mesma chave e ponto de extremidade para seus aplicativos nos vários serviços de IA do Azure.
Criar e inicializar o aplicativo
Crie um projeto do Java em seu IDE ou editor favorito e importe as seguintes bibliotecas:
import java.io.InputStream; import java.net.URL; import java.net.URLEncoder; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; import javax.net.ssl.HttpsURLConnection; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import com.google.gson.JsonParser;
Crie uma classe denominada
CustomSrchJava
e crie variáveis para a chave de assinatura, o ponto de extremidade de pesquisa personalizada e a ID de configuração personalizada da instância de pesquisa. É possível usar o ponto de extremidade global no código a seguir ou o ponto de extremidade do subdomínio personalizado exibido no portal do Azure para seu recurso.public class CustomSrchJava { static String host = "https://api.cognitive.microsoft.com"; static String path = "/bingcustomsearch/v7.0/search"; static String subscriptionKey = "YOUR-SUBSCRIPTION-KEY"; static String customConfigId = "YOUR-CUSTOM-CONFIG-ID"; static String searchTerm = "Microsoft"; ...
Criar outra classe denominada
SearchResults
para conter a resposta da sua instância da Pesquisa Personalizada do Bing.class SearchResults { HashMap<String, String> relevantHeaders; String jsonResponse; SearchResults(HashMap<String, String> headers, String json) { relevantHeaders = headers; jsonResponse = json; } }
Crie uma função chamada
prettify()
para formatar a resposta JSON da API de Pesquisa Personalizada do Bing.// pretty-printer for JSON; uses GSON parser to parse and re-serialize 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); }
Enviar e receber uma solicitação de pesquisa
Crie uma função chamada
SearchWeb()
que envia uma solicitação e retorna um objetoSearchResults
. Crie a URL de solicitação pela combinação de suas informações de ID de configuração personalizada, consulta e ponto de extremidade. Adicione a chave de assinatura ao cabeçalhoOcp-Apim-Subscription-Key
.public class CustomSrchJava { ... public static SearchResults SearchWeb (String searchQuery) throws Exception { // construct the URL for your search request (endpoint + query string) URL url = new URL(host + path + "?q=" + URLEncoder.encode(searchTerm, "UTF-8") + "&CustomConfig=" + customConfigId); HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); connection.setRequestProperty("Ocp-Apim-Subscription-Key", subscriptionKey); ...
Crie um fluxo e armazene a resposta JSON em um objeto
SearchResults
.public class CustomSrchJava { ... public static SearchResults SearchWeb (String searchQuery) throws Exception { ... // receive the JSON body InputStream stream = connection.getInputStream(); String response = new Scanner(stream).useDelimiter("\\A").next(); // construct result object for return SearchResults results = new SearchResults(new HashMap<String, String>(), response); stream.close(); return results; }
Imprima a resposta JSON.
System.out.println("\nJSON Response:\n"); System.out.println(prettify(result.jsonResponse));
Execute o programa.