Mulai cepat: Dapatkan insight gambar menggunakan REST API Pencarian Kontrol Bing dan Java
Peringatan
Pada 30 Oktober 2020, API Bing Search dipindahkan dari layanan Azure AI ke Bing Search Services. Dokumentasi ini disediakan hanya untuk referensi. Untuk dokumentasi terbaru, lihat dokumentasi Bing Search API. Untuk petunjuk tentang cara membuat sumber daya Azure baru untuk pencarian Bing, lihat Membuat sumber daya Pencarian Bing melalui Marketplace Azure.
Gunakan mulai cepat ini untuk melakukan panggilan pertama Anda ke Bing Visual Search API. Aplikasi Java ini mengunggah gambar ke API dan menampilkan informasi yang dikembalikannya. Meskipun aplikasi ini ditulis dalam Java, API adalah layanan Web RESTful yang kompatibel dengan sebagian besar bahasa pemrograman.
Prasyarat
Membuat grup sumber daya Azure
Mulai gunakan Bing Visual Search API dengan membuat salah satu sumber daya Azure berikut:
- Tersedia melalui portal Microsoft Azure hingga Anda menghapus sumber daya.
- Pilih tingkat harga
S9
.
- Tersedia melalui portal Microsoft Azure hingga Anda menghapus sumber daya.
- Gunakan kunci dan titik akhir yang sama untuk aplikasi Anda, di beberapa layanan Azure AI.
Membuat dan menginisialisasi proyek
Buat proyek Java baru di IDE atau editor favorit Anda, dan impor pustaka berikut:
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;
Buat variabel untuk titik akhir API, kunci langganan, dan jalur ke gambar Anda. Untuk nilai
endpoint
, Anda dapat menggunakan titik akhir global dalam kode berikut, atau menggunakan titik akhir subdomain kustom yang ditampilkan di portal Azure untuk sumber daya Anda.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";
Saat Anda mengunggah gambar lokal, data formulir harus menyertakan header
Content-Disposition
. Atur parametername
ke "gambar", dan atur parameterfilename
ke nama file gambar. Isi formulir termasuk data biner dari gambar. Ukuran gambar maksimum yang dapat Anda unggah adalah 1 MB.--boundary_1234-abcd Content-Disposition: form-data; name="image"; filename="myimagefile.jpg" ÿØÿà JFIF ÖÆ68g-¤CWŸþ29ÌÄøÖ‘º«™æ±èuZiÀ)"óÓß°Î= ØJ9á+*G¦... --boundary_1234-abcd--
Membuat parser JSON
Buat metode untuk membuat respons JSON dari API lebih mudah dibaca dengan menggunakan JsonParser
.
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);
}
Menyusun permintaan dan kueri pencarian
Dalam metode utama aplikasi Anda, buat klien HTTP menggunakan
HttpClientBuilder.create().build();
.CloseableHttpClient httpClient = HttpClientBuilder.create().build();
Buat objek
HttpEntity
untuk mengunggah gambar Anda ke API.HttpEntity entity = MultipartEntityBuilder .create() .addBinaryBody("image", new File(imagePath)) .build();
Buat objek
httpPost
dengan titik akhir Anda, dan atur header untuk menggunakan kunci langganan Anda.HttpPost httpPost = new HttpPost(endpoint); httpPost.setHeader("Ocp-Apim-Subscription-Key", subscriptionKey); httpPost.setEntity(entity);
Menerima dan memproses respons JSON
Gunakan metode
HttpClient.execute()
untuk mengirim permintaan ke API, dan simpan respons dalam objekInputStream
.HttpResponse response = httpClient.execute(httpPost); InputStream stream = response.getEntity().getContent();
Simpan untai (karakter) JSON, dan cetak respons.
String json = new Scanner(stream).useDelimiter("\\A").next(); System.out.println("\nJSON Response:\n"); System.out.println(prettify(json));