9.10总结

package baidu.com;



import okhttp3.*;

import org.json.JSONObject;



import java.io.*;



import java.nio.file.Files;

import java.nio.file.Paths;

import java.util.Base64;

import java.net.URLEncoder;



class Sample {

public static final String API_KEY = "0pMg2OjMvVjVW0uSq3QxSc6l";

public static final String SECRET_KEY = "k63PimOyzKMLU9yVPDx7jxbWb8dIPT0j";



static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();



public static void main(String []args) throws IOException{

// booleanture = true;

String filepath ="D:\\2.jpg";

String name= getFileContentAsBase64(filepath,true);

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");

// image 可以通过 getFileContentAsBase64("C:\fakepath\1.png.png") 方法获取,如果Content-Type是application/x-www-form-urlencoded时,第二个参数传true

RequestBody body = RequestBody.create(mediaType, "type=anime&mask_id=1&image="+name);

Request request = new Request.Builder()

.url("https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime?access_token=" + getAccessToken())

.method("POST", body)

.addHeader("Content-Type", "application/x-www-form-urlencoded")

.addHeader("Accept", "application/json")

.build();

Response response = HTTP_CLIENT.newCall(request).execute();

System.out.println(response.body().string());



}



/**

* 获取文件base64编码

*

* @param path 文件路径

* @param urlEncode 如果Content-Type是application/x-www-form-urlencoded时,传true

* @return base64编码信息,不带文件头

* @throws IOException IO异常

*/

static String getFileContentAsBase64(String path, boolean urlEncode) throws IOException {

byte[] b = Files.readAllBytes(Paths.get(path));

String base64 = Base64.getEncoder().encodeToString(b);

if (urlEncode) {

base64 = URLEncoder.encode(base64, "utf-8");

}

return base64;

}





/**

* 从用户的AK,SK生成鉴权签名(Access Token)

*

* @return 鉴权签名(Access Token)

* @throws IOException IO异常

*/

static String getAccessToken() throws IOException {

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");

RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY

+ "&client_secret=" + SECRET_KEY);

Request request = new Request.Builder()

.url("https://aip.baidubce.com/oauth/2.0/token")

.method("POST", body)

.addHeader("Content-Type", "application/x-www-form-urlencoded")

.build();

Response response = HTTP_CLIENT.newCall(request).execute();

return new JSONObject(response.body().string()).getString("access_token");

}



}
posted @   奉禾  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示
主题色彩