java调用百度识别文字出现{"error_code":110,"error_msg":"Access token invalid or no longer valid"}错误
时间: 2023-07-22 20:10:26 浏览: 236
微信小程序中获取access_token
5星 · 资源好评率100%
这个错误通常意味着你的Access Token无效或过期了。你需要获取一个有效的Access Token来调用百度OCR接口。
以下是一种获取Access Token的方法:
```java
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
public class BaiduOCR {
public static void main(String[] args) throws IOException {
// 设置API Key和Secret Key
String apiKey = "your_api_key";
String secretKey = "your_secret_key";
// 获取访问令牌
String accessToken = getAccessToken(apiKey, secretKey);
// 调用百度OCR接口
String result = callBaiduOCR(accessToken);
System.out.println(result);
}
// 获取访问令牌
private static String getAccessToken(String apiKey, String secretKey) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://aip.baidubce.com/oauth/2.0/token");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("grant_type", "client_credentials"));
params.add(new BasicNameValuePair("client_id", apiKey));
params.add(new BasicNameValuePair("client_secret", secretKey));
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity, StandardCharsets.UTF_8);
httpClient.close();
return result.split("\"")[3];
}
// 调用百度OCR接口
private static String callBaiduOCR(String accessToken) throws IOException {
// 调用百度OCR接口的代码
return "";
}
}
```
在这个示例代码中,你需要将`your_api_key`和`your_secret_key`替换为你自己的百度API Key和Secret Key。在`getAccessToken`方法中,我们使用了HTTP POST请求来获取访问令牌,并从响应中提取出Access Token。
在调用百度OCR接口的方法中,你需要将获取到的Access Token传递给接口调用,以确保你使用了有效的访问令牌。
请确保你已经按照这个方法获取了有效的Access Token并传递给了百度OCR接口调用。
希望这能解决你的问题!如果还有其他疑问,请随时提问。
阅读全文