调用方式
请求格式
POST方式调用
注意
注意:Content-Type为application/x-www-form-urlencoded,然后通过urlencode格式化请求体。
请求限制
请求图片需经过base64编码及urlencode后传入:图片的base64编码指将一副图片数据编码成一串字符串,使用该字符串代 替图像地址。您可以首先得到图片的二进制,然后去掉编码头后再进行urlencode。
注意
注意:
图片的base64编码是不包含图片头的,如(data:image/jpg;base64,); 使用 Postman 工具或 Python、PHP 等请求库会自动进行 urlencode,无需自行处理。 请求格式支持:PNG、JPG、JPEG、BMP、TIFF等常见图片格式,如有其他需求请与技术人员联系。
请求URL数据格式
向API服务地址使用POST发送请求,必须在URL中带上参数:
access_token: 必须参数,参考“Access Token获取”。
注意
注意:access_token的有效期为 30 天,需要每 30 天进行定期更换;
POST中参数按照API接口说明调用即可。
例如文字识别API,使用HTTPS POST发送:
https://openapi.ocr.sys303.com/api/v1/ocr/general?access_token=24.f9ba9c5241b67688bb4adbed8bc91dec.2592000.1485570332.282335-8574074
请求样例
- bash
- python
- C#
- Java
curl --request POST \
--url 'https://openapi.ocr.sys303.com/api/v1/ocr/general?access_token=【替换为有效的 access_token】' \
--header 'content-type: multipart/form-data' \
--form 'image=【替换为图片路径】' --form language_type=0
# encoding:utf-8
import requests
import base64
def main():
request_url = 'https://openapi.ocr.sys303.com/api/v1/ocr/general'
access_token= '【替换为有效的 access_token】'
# 二进制方式打开图片文件
f = open('【替换为图片路径】', 'rb')
img = base64.b64encode(f.read())
params = {"image": img}
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
print (response.json())
if __name__ == '__main__':
main()
using System;
using System.IO;
using System.Net;
using System.Text;
public class AccurateBasic
{
public static string RunAccurateBasic()
{
string requestUrl = "https://openapi.ocr.sys303.com/api/v1/ocr/general";
string accessToken = "【替换为有效的 access_token】";
string imagePath = "【替换为图片路径】";
// 拼接带 access_token 的完整 URL
string fullUrl = requestUrl + "?access_token=" + accessToken;
string base64Image = GetFileBase64(imagePath);
// 设置请求参数
string postData = "image=" + Uri.EscapeDataString(base64Image);
// 初始化 HTTP 请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fullUrl);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
// 写入 POST 数据
byte[] data = Encoding.UTF8.GetBytes(postData);
request.ContentLength = data.Length;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(data, 0, data.Length);
}
// 获取响应
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
string result = reader.ReadToEnd();
Console.WriteLine(result);
return result;
}
}
catch (WebException ex)
{
using (StreamReader reader = new StreamReader(ex.Response.GetResponseStream()))
{
string errorResponse = reader.ReadToEnd();
Console.WriteLine("Error Response:");
Console.WriteLine(errorResponse);
}
throw;
}
}
// 将文件转换为 Base64
public static string GetFileBase64(string filePath)
{
byte[] fileBytes = File.ReadAllBytes(filePath);
return Convert.ToBase64String(fileBytes);
}
public static void Main(string[] args)
{
RunAccurateBasic();
}
}
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Base64;
public class RunAccurateBasic {
public static void main(String[] args) {
String requestUrl = "https://openapi.ocr.sys303.com/api/v1/ocr/general";
String accessToken = "【替换为有效的 access_token】";
String imagePath = "【替换为图片路径】";
try {
// 调用 OCR 接口
String result = runAccurateBasic(requestUrl, accessToken, imagePath);
System.out.println("OCR 识别结果: " + result);
} catch (Exception e) {
e.printStackTrace();
}
}
public static String runAccurateBasic(String requestUrl, String accessToken, String imagePath) throws Exception {
// 将图片文件转换为 Base64 编码
String imageBase64 = encodeFileToBase64(imagePath);
// 拼接完整的请求 URL
String fullUrl = requestUrl + "?access_token=" + accessToken;
System.out.println("请求 URL: " + fullUrl);
// 打开 HTTP 连接
URL url = new URL(fullUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// 构造表单参数
String params = "image=" + URLEncoder.encode(imageBase64, "UTF-8");
System.out.println("表单参数: " + params);
// 发送请求数据
try (OutputStream outputStream = connection.getOutputStream()) {
outputStream.write(params.getBytes("UTF-8"));
}
// 读取响应数据
int responseCode = connection.getResponseCode();
System.out.println("HTTP 响应码: " + responseCode);
if (responseCode == 200) {
StringBuilder response = new StringBuilder();
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream(), "UTF-8"))) {
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
}
return response.toString();
} else {
// 读取错误响应
StringBuilder errorResponse = new StringBuilder();
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getErrorStream(), "UTF-8"))) {
String line;
while ((line = reader.readLine()) != null) {
errorResponse.append(line);
}
}
throw new Exception("Error Response: " + errorResponse.toString());
}
}
public static String encodeFileToBase64(String filePath) throws IOException {
File file = new File(filePath);
try (FileInputStream fis = new FileInputStream(file)) {
byte[] fileBytes = new byte[(int) file.length()];
fis.read(fileBytes);
return Base64.getEncoder().encodeToString(fileBytes);
}
}
}
返回格式
JSON格式
具体格式见对应的API