文字识别ocr-奇异果体育app竞彩官网下载
更新时间:2021-08-02
请求格式
post方式调用
注意:content-type为application/x-www-form-urlencoded
,然后通过urlencode
格式化请求体。
返回格式
json格式
请求限制
请求图片需经过base64编码
及urlencode
后传入:图片的base64编码指将一副图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后去掉编码头后再进行urlencode。
注意:
- 图片的base64编码是不包含图片头的,如
(data:image/jpg;base64,)
; - 使用 postman 工具或 python、php 等请求库会自动进行 urlencode,无需自行处理。
请求格式支持:png、jpg、jpeg、bmp、tiff、pnm、webp
接口名称 | 图片编码后大小限额 |
---|---|
百度文字识别所有接口的图像大小限制 | base64编码urlencode后大小不超过4m,最短边至少15px,最长边最大4096px |
调用方式
调用ai服务相关的api接口有两种调用方式,两种不同的调用方式采用相同的接口url。
区别在于请求方式和鉴权方法不一样,请求参数和返回结果一致。
【如果您对于使用api调用的方式很陌生,您可以参见:】
调用方式一
请求url数据格式
向api服务地址使用post发送请求,必须在url中带上参数:
access_token: 必须参数,参考“”。
注意:
access_token
的有效期为30天,需要每30天进行定期更换;
post中参数按照api接口说明调用即可。
例如文字识别api,使用https post发送:
https://aip.baidubce.com/rest/2.0/ocr/v1/general?access_token=24.f9ba9c5241b67688bb4adbed8bc91dec.2592000.1485570332.282335-8574074
获取access_token示例代码
#!/bin/bash
curl -i -k 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【百度云应用的ak】&client_secret=【百度云应用的sk】'
function request_post($url = '', $param = '') {
if (empty($url) || empty($param)) {
return false;
}
$posturl = $url;
$curlpost = $param;
$curl = curl_init();//初始化curl
curl_setopt($curl, curlopt_url,$posturl);//抓取指定网页
curl_setopt($curl, curlopt_header, 0);//设置header
curl_setopt($curl, curlopt_returntransfer, 1);//要求结果为字符串且输出到屏幕上
curl_setopt($curl, curlopt_post, 1);//post提交方式
curl_setopt($curl, curlopt_postfields, $curlpost);
$data = curl_exec($curl);//运行curl
curl_close($curl);
return $data;
}
$url = 'https://aip.baidubce.com/oauth/2.0/token';
$post_data['grant_type'] = 'client_credentials';
$post_data['client_id'] = '你的 api key';
$post_data['client_secret'] = '你的 secret key';
$o = "";
foreach ( $post_data as $k => $v )
{
$o.= "$k=" . urlencode( $v ). "&" ;
}
$post_data = substr($o,0,-1);
$res = request_post($url, $post_data);
var_dump($res);
?>
package com.baidu.ai.aip.auth;
import org.json.jsonobject;
import java.io.bufferedreader;
import java.io.inputstreamreader;
import java.net.httpurlconnection;
import java.net.url;
import java.util.list;
import java.util.map;
/**
* 获取token类
*/
public class authservice {
/**
* 获取权限token
* @return 返回示例:
* {
* "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
* "expires_in": 2592000
* }
*/
public static string getauth() {
// 奇异果体育app竞彩官网下载官网获取的 api key 更新为你注册的
string clientid = "百度云应用的ak";
// 奇异果体育app竞彩官网下载官网获取的 secret key 更新为你注册的
string clientsecret = "百度云应用的sk";
return getauth(clientid, clientsecret);
}
/**
* 获取api访问token
* 该token有一定的有效期,需要自行管理,当失效时需重新获取.
* @param ak - 百度云奇异果体育app竞彩官网下载官网获取的 api key
* @param sk - 百度云奇异果体育app竞彩官网下载官网获取的 securet key
* @return assess_token 示例:
* "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"
*/
public static string getauth(string ak, string sk) {
// 获取token地址
string authhost = "https://aip.baidubce.com/oauth/2.0/token?";
string getaccesstokenurl = authhost
// 1. grant_type为固定参数
"grant_type=client_credentials"
// 2. 奇异果体育app竞彩官网下载官网获取的 api key
"&client_id=" ak
// 3. 奇异果体育app竞彩官网下载官网获取的 secret key
"&client_secret=" sk;
try {
url realurl = new url(getaccesstokenurl);
// 打开和url之间的连接
httpurlconnection connection = (httpurlconnection) realurl.openconnection();
connection.setrequestmethod("get");
connection.connect();
// 获取所有响应头字段
map<string, list<string>> map = connection.getheaderfields();
// 遍历所有的响应头字段
for (string key : map.keyset()) {
system.err.println(key "--->" map.get(key));
}
// 定义 bufferedreader输入流来读取url的响应
bufferedreader in = new bufferedreader(new inputstreamreader(connection.getinputstream()));
string result = "";
string line;
while ((line = in.readline()) != null) {
result = line;
}
/**
* 返回结果示例
*/
system.err.println("result:" result);
jsonobject jsonobject = new jsonobject(result);
string access_token = jsonobject.getstring("access_token");
return access_token;
} catch (exception e) {
system.err.printf("获取token失败!");
e.printstacktrace(system.err);
}
return null;
}
}
# encoding:utf-8
import requests
# client_id 为奇异果体育app竞彩官网下载官网获取的ak, client_secret 为奇异果体育app竞彩官网下载官网获取的sk
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【奇异果体育app竞彩官网下载官网获取的ak】&client_secret=【奇异果体育app竞彩官网下载官网获取的sk】'
response = requests.get(host)
if response:
print(response.json())
#include
#include
#include
#include "access_token.h"
// libcurl库下载链接:https://curl.haxx.se/download.html
// jsoncpp库下载链接:https://github.com/open-source-parsers/jsoncpp/
// 获取access_token所需要的url
const std::string access_token_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials";
// 回调函数获取到的access_token存放变量
// static std::string access_token_result;
/**
* curl发送http请求调用的回调函数,回调函数中对返回的json格式的body进行了解析,解析结果储存在result中
* @param 参数定义见libcurl库文档
* @return 返回值定义见libcurl库文档
*/
static size_t callback(void *ptr, size_t size, size_t nmemb, void *stream) {
// 获取到的body存放在ptr中,先将其转换为string格式
std::string s((char *) ptr, size * nmemb);
// 开始获取json中的access token项目
json::reader reader;
json::value root;
// 使用boost库解析json
reader.parse(s,root);
std::string* access_token_result = static_cast<std::string*>(stream);
*access_token_result = root["access_token"].asstring();
return size * nmemb;
}
/**
* 用以获取access_token的函数,使用时需要先在百度云控制台申请相应功能的应用,获得对应的api key和secret key
* @param access_token 获取得到的access token,调用函数时需传入该参数
* @param ak 应用的api key
* @param sk 应用的secret key
* @return 返回0代表获取access token成功,其他返回值代表获取失败
*/
int get_access_token(std::string &access_token, const std::string &ak, const std::string &sk) {
curl *curl;
curlcode result_code;
int error_code = 0;
curl = curl_easy_init();
if (curl) {
std::string url = access_token_url "&client_id=" ak "&client_secret=" sk;
curl_easy_setopt(curl, curlopt_url, url.data());
curl_easy_setopt(curl, curlopt_ssl_verifypeer, 0);
curl_easy_setopt(curl, curlopt_ssl_verifyhost, 0);
std::string access_token_result;
curl_easy_setopt(curl, curlopt_writedata, &access_token_result);
curl_easy_setopt(curl, curlopt_writefunction, callback);
result_code = curl_easy_perform(curl);
if (result_code != curle_ok) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(result_code));
return 1;
}
access_token = access_token_result;
curl_easy_cleanup(curl);
error_code = 0;
} else {
fprintf(stderr, "curl_easy_init() failed.");
error_code = 1;
}
return error_code;
}
using system;
using system.collections.generic;
using system.net.http;
namespace com.baidu.ai
{
public static class accesstoken
{
// 调用getaccesstoken()获取的 access_token建议根据expires_in 时间 设置缓存
// 返回token示例
public static string token = "24.adda70c11b9786206253ddb70affdc46.2592000.1493524354.282335-1234567";
// 百度云中开通对应服务应用的 api key 建议开通应用的时候多选服务
private static string clientid = "百度云应用的ak";
// 百度云中开通对应服务应用的 secret key
private static string clientsecret = "百度云应用的sk";
public static string getaccesstoken() {
string authhost = "https://aip.baidubce.com/oauth/2.0/token";
httpclient client = new httpclient();
list<keyvaluepair<string, string>> paralist = new list<keyvaluepair<string, string>>();
paralist.add(new keyvaluepair<string, string>("grant_type", "client_credentials"));
paralist.add(new keyvaluepair<string, string>("client_id", clientid));
paralist.add(new keyvaluepair<string, string>("client_secret", clientsecret));
httpresponsemessage response = client.postasync(authhost, new formurlencodedcontent(paralist)).result;
string result = response.content.readasstringasync().result;
console.writeline(result);
return result;
}
}
}
var https = require('https');
var qs = require('querystring');
const param = qs.stringify({
'grant_type': 'client_credentials',
'client_id': '您的 api key',
'client_secret': '您的 secret key'
});
https.get(
{
hostname: 'aip.baidubce.com',
path: '/oauth/2.0/token?' param,
agent: false
},
function (res) {
// 在标准输出中查看运行结果
res.pipe(process.stdout);
}
);
说明:方式一鉴权使用的access_token必须通过api key和secret key获取。
调用方式二
请求头域内容
在请求的http头域中包含以下信息:
- host(必填)
- x-bce-date (必填)
- x-bce-request-id(选填)
- authorization(必填)
- content-type(必填)
- content-length(选填)
作为示例,以下是一个标准的人脸识别的请求头域内容:
post /rest/2.0/face/v1/detect http/1.1
accept-encoding: gzip, deflate
x-bce-date: 2015-03-24t13:02:00z
connection: keep-alive
accept: */*
host: aip.baidubce.com
x-bce-request-id: 73c4e74c-3101-4a00-bf44-fe246959c05e
content-type: application/x-www-form-urlencoded
authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2015-03-24t13:02:00z/1800/host;x-bce-date/994014d96b0eb26578e039fa053a4f9003425da4bfedf33f4790882fb4c54903