本接口基于 PaddleOCR v4 Mobile 模型,专门针对中国居民身份证进行了深度优化。
1. 基础信息
| 接口地址 | /ocr/idcard |
| 请求方法 | POST |
| 数据格式 | multipart/form-data |
| 响应格式 | JSON |
2. 请求参数 (Form Data)
| 参数名 | 类型 | 是否必选 | 说明 |
file | File | 是 | 身份证图片文件 (支持 jpg, png, bmp) |
type | String | 否 | 识别模式。默认为 auto (自动识别正面或反面),传其他值暂不生效。 |
request_id | String | 否 | 唯一请求 ID。用于日志追踪,建议由调用方生成。如果不传,服务端将自动生成。 |
3. 在线调试
4. Java 示例 (Apache HttpClient)
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.File;
public class OcrClient {
public static void main(String[] args) throws Exception {
String url = "https://ocr.bjgzc.com/ocr/idcard";
File file = new File("path/to/your/idcard.jpg");
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpPost uploadFile = new HttpPost(url);
HttpEntity entity = MultipartEntityBuilder.create()
.addBinaryBody("file", file, ContentType.APPLICATION_OCTET_STREAM, file.getName())
.addTextBody("type", "auto")
.addTextBody("request_id", "REQ-" + System.currentTimeMillis())
.build();
uploadFile.setEntity(entity);
try (CloseableHttpResponse response = httpClient.execute(uploadFile)) {
System.out.println(EntityUtils.toString(response.getEntity()));
}
}
}
}
5. Java 示例 (OkHttp)
import okhttp3.*;
import java.io.File;
public class OcrOkHttp {
public static void main(String[] args) throws Exception {
OkHttpClient client = new OkHttpClient();
File file = new File("path/to/your/idcard.jpg");
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("image/jpeg"), file))
.addFormDataPart("type", "auto")
.addFormDataPart("request_id", "REQ-" + System.currentTimeMillis())
.build();
Request request = new Request.Builder().url("https://ocr.bjgzc.com/ocr/idcard").post(requestBody).build();
try (Response response = client.newCall(request).execute()) {
System.out.println(response.body().string());
}
}
}
6. Python 示例
import requests
def ocr_idcard(image_path):
url = "https://ocr.bjgzc.com/ocr/idcard"
with open(image_path, 'rb') as f:
files = {'file': f}
data = {'type': 'auto', 'request_id': 'YOUR_UNIQUE_ID'}
response = requests.post(url, files=files, data=data)
print(response.json())
7. cURL 示例
curl -X POST \
-F "file=@/path/to/your/idcard.jpg" \
-F "type=auto" \
-F "request_id=REQ123456" \
https://ocr.bjgzc.com/ocr/idcard