百度翻译

今天上了武老师的课,学习了百度的翻译接口,要求结合GUI界面实现中英文的互译。

但是不知道什么原因一直显示申请token码无用和过期,所以今天进度不是很大,等明天在解决。

package com.example;

import okhttp3.*;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.*;

class Sample {
public static final String API_KEY = "42m0dnvKnthcV2hit4hX3fXy";
public static final String SECRET_KEY = "ieC8ms9Wl57BLqMGzitDkv5j7HnGZdRv";

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

public static void main(String []args) throws IOException{
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"from\":\"en\",\"to\":\"zh\",\"q\":\"hello\"}");
Request request = new Request.Builder()
.url("https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=" + getAccessToken())
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.build();
Response response = HTTP_CLIENT.newCall(request).execute();
System.out.println(response.body().string());

}


/**
* 从用户的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();
try {
return new JSONObject(response.body().string()).getString("access_token");
} catch (JSONException e) {
throw new RuntimeException(e);
}
}

}
posted @ 2023-11-30 00:08  布吉岛???  阅读(36)  评论(0)    收藏  举报