Penjelasan terperinci tentang contoh logik panggilan dan kod antara muka perbandingan muka Java dan Huawei Cloud
Dengan perkembangan pesat teknologi kecerdasan buatan, pengecaman muka telah menjadi cara teknikal yang digunakan secara meluas dalam masyarakat moden. Huawei Cloud menyediakan antara muka perbandingan muka, yang boleh merealisasikan perbandingan dan pengecaman imej muka. Artikel ini akan memperkenalkan secara terperinci cara menggunakan bahasa pengaturcaraan Java untuk memanggil logik panggilan antara muka perbandingan muka Awan Huawei, dan melampirkan contoh kod yang sepadan.
Pertama, kita perlu mencipta contoh perkhidmatan perbandingan wajah pada Huawei Cloud dan mendapatkan Kunci API dan Kunci Rahsia yang sepadan untuk kebenaran pengesahan.
Seterusnya, kita perlu menggunakan bahasa pengaturcaraan Java untuk melaksanakan logik panggilan antara muka perbandingan muka. Mula-mula, kita perlu memperkenalkan perpustakaan bergantung yang sepadan, termasuk Apache HttpClient dan Fastjson:
import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import com.alibaba.fastjson.JSONObject;
Seterusnya, kita perlu menentukan kaedah untuk membuat panggilan antara muka untuk perbandingan muka dan lulus dalam Base64 daripada dua imej muka untuk dibandingkan. Rentetan yang dikodkan sebagai parameter:
public static double compare(String image1, String image2) { double similarity = 0.0; try { // 根据实际的服务部署地区选择对应的API地址 String apiUrl = "https://face.cn-north-1.myhuaweicloud.com/v2/compare-face"; // 创建HttpPost对象,并设置请求的URL HttpPost httpPost = new HttpPost(apiUrl); // 设置请求的头部信息 httpPost.setHeader("Content-Type", "application/json;charset=UTF-8"); httpPost.setHeader("X-Auth-Token", getAuthToken()); // 设置请求的内容参数 JSONObject requestObj = new JSONObject(); requestObj.put("image1", image1); requestObj.put("image2", image2); StringEntity requestEntity = new StringEntity(requestObj.toJSONString(), ContentType.APPLICATION_JSON); httpPost.setEntity(requestEntity); // 创建HttpClient对象,并发送HttpPost请求 HttpClient httpClient = HttpClientBuilder.create().build(); HttpResponse response = httpClient.execute(httpPost); // 获取接口返回的结果 HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity, "UTF-8"); // 解析接口返回的结果 JSONObject responseObj = JSONObject.parseObject(result); similarity = responseObj.getDouble("similarity"); } catch (Exception e) { e.printStackTrace(); } return similarity; }
Dalam kod di atas, kami mula-mula menetapkan alamat API, meminta maklumat pengepala dan meminta maklumat parameter antara muka perbandingan muka. Kemudian, kami menggunakan HttpClient untuk menghantar permintaan HttpPost dan mendapatkan hasil yang dikembalikan oleh antara muka.
Akhir sekali, kami juga perlu menentukan kaedah untuk mendapatkan token pengesahan, yang digunakan untuk mendapatkan token sebelum panggilan antara muka:
public static String getAuthToken() { String authToken = ""; try { // 根据实际的服务部署地区选择对应的API地址 String apiUrl = "https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens"; // 创建HttpPost对象,并设置请求的URL HttpPost httpPost = new HttpPost(apiUrl); // 设置请求的头部信息 httpPost.setHeader("Content-Type", "application/json;charset=UTF-8"); // 设置请求的内容参数 String requestBody = "{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"<your_account_name>","password":"<your_password>","domain":{"name":"<your_domain_name>"}}}},"scope":{"project":{"name":"<your_project_name>"}}}}"; StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); httpPost.setEntity(requestEntity); // 创建HttpClient对象,并发送HttpPost请求 HttpClient httpClient = HttpClientBuilder.create().build(); HttpResponse response = httpClient.execute(httpPost); // 获取接口返回的结果 Header[] headers = response.getHeaders("X-Subject-Token"); if (headers.length > 0) { authToken = headers[0].getValue(); } } catch (Exception e) { e.printStackTrace(); } return authToken; }
Dalam kod di atas, kami mula-mula menetapkan alamat API antara muka pengesahan, pengepala permintaan maklumat dan meminta maklumat parameter. Kemudian, kami menggunakan HttpClient untuk menghantar permintaan HttpPost dan mendapatkan Token pengesahan dalam hasil yang dikembalikan oleh antara muka. . ; dan a67eee5a89809b7a4f63c587afc5d39b masing-masing diganti dengan akaun Awan Huawei, kata laluan, nama domain dan nama projek, dan f065b767b3e2a59e89306a81cd8e3463 dan 1a1557c7cbba09a24fdeebd1a5a5fa9a
Ringkasnya, artikel ini menganalisis logik panggilan antara muka perbandingan muka Java dan Huawei Cloud secara terperinci dan menyediakan contoh kod yang sepadan. Saya harap ia akan membantu pembaca dalam aplikasi praktikal perbandingan muka mereka.
Atas ialah kandungan terperinci Analisis terperinci tentang logik panggilan antara muka perbandingan muka Java dan Huawei Cloud. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!