OCR文字识别
简介
HI,您好,欢迎使用学而思网校AI开放平台OCR文字识别接口服务。
本文档主要针对需要集成HTTP API的技术研发工程师,详细描述OCR文字识别能力相关的技术内容。您可以通过
接口能力
接口名称
接口能力简要描述
api 地址
OCR文字识别
检测上传图像中的文字,进行 AI 文字识别
/v1/api/img/ocr/general
适用范围
任意操作系统,任意编程语言,均可以通过http或https调用本接口。
图像发送方式
图像数据支持两种形式发送:
URL
网络上的图片 URL 地址
图片数据
请求图片需经过base64编码:图片的base64编码指将一副图片编码成字符串数据,便于网络传输请求。您可以首先得到图片的二进制,进行base64编码后,然后再进行urlencode(注意你所使用的网络工具或网络库有没有默认的urlencode功能,如果没有,需要你自己显式转化)。
转码方式可参考
注意: 图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)
图片大小
不能大于4MB
长边不能超过4096px
短边不能小于15px
图像类型支持
图像数据支持以下原生类型:
jpg
png
jpeg
bmp
文字识别范围
目前,OCR识别接口服务支持多种类型文字,包括:
中文打印体识别
英文打印体识别
表格识别
拼音识别
请求方式
HTTP 方法:POST
请求 URL:/v1/api/img/ocr/general
注意: Content-Type为application/x-www-form-urlencoded,然后通过urlencode格式化请求体。
Header 如下:
参数名
赋值
Content-Type
application/x-www-form-urlencoded
urlencode介绍
在请求 API 的 post 请求参数中含有图片url地址或base64字符。url地址 或 base64 字符作为参数传递时,需要把 中文 以及 '/' 做一下编码,防止解析中出现歧义,从而符合url的规范。
将中文 以及 '/' 转换为百分号编码形式,这就是 urlencode格式化操作。
部分语言的第三方包内部做了 urlencode 编码,不进行 urlencode 格式化也可以正常进行 API 请求,但 是进行 urlencode 格式化之后,一定可以通过请求。所以我们推荐您对请求体中的参数进行 urlencode 操作。
快速接入方式
请求参数详情
参数名
类型
是否必选
赋值说明
样例
备注
app_key
string
是
应用标识
8102b22a5e81e840176d9f381ec6f837
img
string
是
图像数据
//03/22/5c94684fad743.jpg
或
图像 base64数据:示例数据较长,见附件
图像base64字符串 / 图像URL
img_type
string
是
图像形式
URL
base64 / URL
recog_formula
int
否
是否识别公式
0 -识别 | 1-不识别 ,默认0
请求代码示例
HTTP 代码示例:
POST /v1/api/img/ocr/general HTTP/1.1
Host:
Content-Type: application/x-www-form-urlencoded
cache-control: no-cache
app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3a%2f%%2f%2f03%2f22%2f5c94684fad743.jpg&img_type=URL
cURL 代码示例:
curl -X POST \
/v1/api/img/ocr/general \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'cache-control: no-cache' \
-d 'app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3a%2f%%2f%2f03%2f22%2f5c94684fad743.jpg&img_type=URL'
PHP 代码示例:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "/v1/api/img/ocr/general",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3a%2f%%2f%2f03%2f22%2f5c94684fad743.jpg&img_type=URL",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded",
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Python(Python3) 代码示例:
URL传参方式:
import http.client
conn = http.client.HTTPConnection("")
payload = "app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3A%2F%%2FtextRecognition%2Fimages%2F22.jpg&img_type=URL"
headers = {
'Content-Type': "application/x-www-form-urlencoded",
'cache-control': "no-cache",
}
conn.request("POST", "/v1/api/img/ocr/general/", payload, headers)
res = conn.getresponse()
data = res.read()
#python2.7
#print(data)
#python3.6
print(data.decode("utf-8"))
conn.close()
base64传参方式:
import http.client
import urllib
import base64
from urllib import quote
with open('./test.jpg', 'rb') as bin_data:
image_data = bin_data.read()
image_data_base64 = base64.b64encode(image_data)
image_data_base64 = quote(image_data_base64)
conn = http.client.HTTPConnection("")
appkey_string = 'app_key=8102b22a5e81e840176d9f381ec6f837'
img_string = 'img=' + image_data_base64
img_type_string = 'img_type=base64'
payload = appkey_string + '&' + img_string + '&' + img_type_string
headers = {
'Content-Type': "application/x-www-form-urlencoded",
'cache-control': "no-cache",
}
conn.request("POST", "/v1/api/img/ocr/general/", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
conn.close()
C++(LibCurl) 代码示例:
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "/v1/api/img/ocr/general");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "cache-control: no-cache");
headers = curl_slist_append(headers, "Content-Type: application/x-www-form-urlencoded");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3a%2f%%2f%2f03%2f22%2f5c94684fad743.jpg&img_type=URL");
CURLcode ret = curl_easy_perform(hnd);
Java 代码示例:
public static void QuickConnect(){
new Thread(new Runnable() {
@Override
public void run() {
try {
Map params = new HashMap();
params.put("app_key", "8102b22a5e81e840176d9f381ec6f837");
params.put("img","//03/22/5c94684fad743.jpg");
params.put("img_type","URL");
Log.i(TAG,"start post");
String result = HttpUtil.sendPostMessage(params,"utf-8");
System.out.println("result->"+result);
}catch(Exception e)
{
e.printStackTrace();
}
}
}).start();
}
JavaScript 代码示例:
var settings = {
"async": true,
"crossDomain": true,
"url": "/v1/api/img/ocr/general",
"method": "POST",
"headers": {
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
},
"data": {
"app_key": "8102b22a5e81e840176d9f381ec6f837",
"img": "/textRecognition/images/22.jpg",
"img_type": "URL"
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
Go 代码示例:
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "/v1/api/img/ocr/general"
payload := strings.NewReader("app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3A%2F%%2FtextRecognition%2Fimages%2F22.jpg&img_type=URL")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
req.Header.Add("cache-control", "no-cache")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
C# 代码示例:
using System;
using System.IO;
using ;
using System.Text;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string celerityPost = CelerityPost();
Console.WriteLine("快速接入方式:\n" + celerityPost);
Console.ReadLine();
}
private static string CelerityPost()
{
string url = "/v1/api/img/ocr/general";//URL地址
string payload = "app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3A%2F%%2FtextRecognition%2Fimages%2F22.jpg&img_type=URL";
CookieContainer cookieContainer = new CookieContainer();
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.ContentLength = Encoding.UTF8.GetByteCount(payload);
webRequest.ContentType = "application/x-www-form-urlencoded";//Content-Type
webRequest.CookieContainer = cookieContainer;
webRequest.Method = "post";
Stream request = webRequest.GetRequestStream();
StreamWriter streamWriter = new StreamWriter(request, Encoding.GetEncoding("gb2312"));
streamWriter.Write(payload);
streamWriter.Close();
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
response.Cookies = cookieContainer.GetCookies(response.ResponseUri);
Stream returnStream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(returnStream, Encoding.GetEncoding("utf-8"));
string endResult = streamReader.ReadToEnd();//返回结果
streamReader.Close();
returnStream.Close();
return endResult;
}
}
}
微信小程序 代码示例:
wx.request({
url: '/v1/api/img/ocr/general',
method: "post",
data:
{
app_key: "8102b22a5e81e840176d9f381ec6f837",
img: "/textRecognition/images/22.jpg",
img_type: "URL",
},
header: {
"content-type": "application/x-www-form-urlencoded",
},
success(res) {
console.log(res.data)
}
})
iOS 代码示例:
NSURLSession *session = [NSURLSession sharedSession];
NSString *urlStr = @"/v1/api/img/ocr/general";
NSURL *url = [NSURL URLWithString:urlStr];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"POST";
NSString *app_key = @"app_key=8102b22a5e81e840176d9f381ec6f837";
NSString *img = @"img=/textRecognition/images/22.jpg";
NSString *img_type = @"img_type=URL";
NSString *paramsStr = [NSString stringWithFormat:@"%@&%@&%@", app_key, img, img_type];
request.HTTPBody = [paramsStr dataUsingEncoding:NSUTF8StringEncoding];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSLog(@"result=%@",dict);
}];
[dataTask resume];
安全接入方式
请求参数详情
参数名
类型
是否必选
赋值说明
样例
备注
app_key
string
是
应用标识
8102b22a5e81e840176d9f381ec6f837
time_stamp
string
是
秒级时间戳
1493468759
安全接入必备,用于唯一地标识某一刻的时间
nonce_str
string
是
随机字符串
dd599ef889859f9fe
安全接入必备
sign
string
是
签名信息
99880aabb33f4def5c875875b6bdc3b1
安全接入必备
img_type
string
是
图像形式
URL
base64 / URL
recog_formula
int
否
是否识别公式
0 -识别 | 1-不识别 ,默认0
请求代码示例
HTTP 代码示例:
POST /v1/api/img/ocr/general HTTP/1.1
Host:
Content-Type: application/x-www-form-urlencoded
cache-control: no-cache
app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3A%2F%%2FtextRecognition%2Fimages%2F22.jpg&img_type=URL&time_stamp=1551174536&nonce_str=W8FI8oCp&sign=c08d8f9900479a3b2a348c1d7dc7e918e71be66a
cURL 代码示例:
curl -X POST \
/v1/api/img/ocr/general \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'cache-control: no-cache' \
-d 'app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3A%2F%%2FtextRecognition%2Fimages%2F22.jpg&img_type=URL&time_stamp=1551174536&nonce_str=W8FI8oCp&sign=c08d8f9900479a3b2a348c1d7dc7e918e71be66a'
PHP 代码示例:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "/v1/api/img/ocr/general",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3A%2F%%2FtextRecognition%2Fimages%2F22.jpg&img_type=URL&time_stamp=1551174536&nonce_str=W8FI8oCp&sign=c08d8f9900479a3b2a348c1d7dc7e918e71be66a",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded",
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Python(Python3) 代码示例:
URL传参方式:
import http.client
conn = http.client.HTTPConnection("")
payload = "app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3A%2F%%2FtextRecognition%2Fimages%2F22.jpg&img_type=URL&time_stamp=1551174536&nonce_str=W8FI8oCp&sign=c08d8f9900479a3b2a348c1d7dc7e918e71be66a"
headers = {
'Content-Type': "application/x-www-form-urlencoded",
'cache-control': "no-cache",
}
conn.request("POST", "/v1/api/img/ocr/general/", payload, headers)
res = conn.getresponse()
data = res.read()
#python2.7
#print(data)
#python3.6
print(data.decode("utf-8"))
conn.close()
base64传参方式:
import http.client
import urllib
import base64
from urllib import quote
with open('./test.jpg', 'rb') as bin_data:
image_data = bin_data.read()
image_data_base64 = base64.b64encode(image_data)
image_data_base64 = quote(image_data_base64)
conn = http.client.HTTPConnection("")
appkey_string = 'app_key=8102b22a5e81e840176d9f381ec6f837'
img_string = 'img=' + image_data_base64
img_type_string = 'img_type=base64'
payload = appkey_string + '&' + img_string + '&' + img_type_string + '&time_stamp=1551174536&nonce_str=W8FI8oCp&sign=c08d8f9900479a3b2a348c1d7dc7e918e71be66a'
headers = {
'Content-Type': "application/x-www-form-urlencoded",
'cache-control': "no-cache",
}
conn.request("POST", "/v1/api/img/ocr/general/", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
conn.close()
C++(LibCurl) 代码示例:
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "/v1/api/img/ocr/general");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "cache-control: no-cache");
headers = curl_slist_append(headers, "Content-Type: application/x-www-form-urlencoded");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3A%2F%%2FtextRecognition%2Fimages%2F22.jpg&img_type=URL&time_stamp=1551174536&nonce_str=W8FI8oCp&sign=c08d8f9900479a3b2a348c1d7dc7e918e71be66a");
CURLcode ret = curl_easy_perform(hnd);
Java 代码示例:
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3A%2F%%2FtextRecognition%2Fimages%2F22.jpg&img_type=URL&time_stamp=1551174536&nonce_str=W8FI8oCp&sign=c08d8f9900479a3b2a348c1d7dc7e918e71be66a");
Request request = new Request.Builder()
.url("/v1/api/img/ocr/general")
.post(body)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
JavaScript 代码示例:
var settings = {
"async": true,
"crossDomain": true,
"url": "/v1/api/img/ocr/general",
"method": "POST",
"headers": {
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
},
"data": {
"app_key": "8102b22a5e81e840176d9f381ec6f837",
"img": "/textRecognition/images/22.jpg",
"img_type": "URL",
"time_stamp": "1551174536",
"nonce_str": "W8FI8oCp",
"sign": "c08d8f9900479a3b2a348c1d7dc7e918e71be66a"
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
Go 代码示例:
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "/v1/api/img/ocr/general"
payload := strings.NewReader("app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3A%2F%%2FtextRecognition%2Fimages%2F22.jpg&img_type=URL&time_stamp=1551174536&nonce_str=W8FI8oCp&sign=c08d8f9900479a3b2a348c1d7dc7e918e71be66a")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
req.Header.Add("cache-control", "no-cache")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
C# 代码示例:
using System;
using System.IO;
using ;
using System.Text;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string safetyPost = SafetyPost();
Console.WriteLine("安全接入方式:\n" + safetyPost);
Console.ReadLine();
}
private static string SafetyPost()
{
string url = "/v1/api/img/ocr/general";//URL地址
string payload = "app_key=8102b22a5e81e840176d9f381ec6f837&img=https%3A%2F%%2FtextRecognition%2Fimages%2F22.jpg&img_type=URL&time_stamp=1551174536&nonce_str=W8FI8oCp&sign=7d15e530e58fcf3a020ec69b48d951010fa49322";
CookieContainer cookieContainer = new CookieContainer();
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.ContentLength = Encoding.UTF8.GetByteCount(payload);
webRequest.ContentType = "application/x-www-form-urlencoded";//Content-Type
webRequest.CookieContainer = cookieContainer;
webRequest.Method = "post";
Stream request = webRequest.GetRequestStream();
StreamWriter streamWriter = new StreamWriter(request, Encoding.GetEncoding("gb2312"));
streamWriter.Write(payload);
streamWriter.Close();
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
response.Cookies = cookieContainer.GetCookies(response.ResponseUri);
Stream returnStream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(returnStream, Encoding.GetEncoding("utf-8"));
string endResult = streamReader.ReadToEnd();//返回结果
streamReader.Close();
returnStream.Close();
return endResult;
}
}
}
微信小程序 代码示例:
wx.request({
url: '/v1/api/img/ocr/general',
method: "post",
data:
{
app_key: "8102b22a5e81e840176d9f381ec6f837",
img: "/textRecognition/images/22.jpg",
img_type: "URL",
time_stamp: "1551174536",
nonce_str: "W8FI8oCp",
sign: "c08d8f9900479a3b2a348c1d7dc7e918e71be66a"
},
header: {
"content-type": "application/x-www-form-urlencoded",
},
success(res) {
console.log(res.data)
}
})
iOS 代码示例:
NSURLSession *session = [NSURLSession sharedSession];
NSString *urlStr = @"/v1/api/img/ocr/general";
NSURL *url = [NSURL URLWithString:urlStr];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"POST";
NSString *app_key = @"app_key=8102b22a5e81e840176d9f381ec6f837";
NSString *img = @"img=/textRecognition/images/22.jpg";
NSString *img_type = @"img_type=URL";
NSString *time_stamp = @"time_stamp=1551174536";
NSString *nonce_str = @"nonce_str=W8FI8oCp";
NSString *sign = @"sign=c08d8f9900479a3b2a348c1d7dc7e918e71be66a";
NSString *paramsStr = [NSString stringWithFormat:@"%@&%@&%@&%@&%@&%@", app_key, img, img_type, time_stamp, nonce_str, sign];
request.HTTPBody = [paramsStr dataUsingEncoding:NSUTF8StringEncoding];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSLog(@"result=%@",dict);
}];
[dataTask resume];
返回响应
返回格式
JSON格式
响应参数说明
参数名
类型
赋值说明
样例
备注
code
string
返回码
0
msg
string
返回码解释
"请求成功"
data
object
识别数据结构
数据结构
content
array
识别文本数组
["学而思网校"]
数组中每一个元素代表一行识别文本
loc
array
图像中的图形位置
[[123,76,202,157]]
左上角点坐标,右下角点坐标 ,图像中无图形时为空
recognition
object
详细识别信息结构
数据结构
包含图表信息,文本单字信息,英文单词信息,支持拼音识别
ocrId
string
唯一的id
"03-20-17-57-27-040-32c6e327d0573a9aac8480dc63f8908f"
用于定位问题
ocrLinesList
array
识别对象数组
识别对象可为图表、一行文本
type
string
对象类型
包含"word"、"table"、"p"三种类型,分别表示文字,图表,行/段落
alp
object
拼音对象
当图像中文字包含拼音时,返回结果中文字包含拼音对象
row
int
行合并数
1
表格单元包含的行数
col
int
列合并数
1
表格单元包含的列数
lineNum
int
表格单元所在行数
2
表格单元的起始行数
响应代码示例
响应Body:
{
"code": 0,
"msg": "请求成功",
"data": {
"recognition": {
"ocrId": "03-20-17-57-27-040_32c6e327d0573a9aac8480dc63f8908f",
"ocrLinesList": [
{
"data": [
{
"alp": null,
"height": 29,
"type": "word",
"value": "形",
"width": 27,
"x": 82,
"y": 56
},
{
"type": "word",
"x": 96,
"y": 56,
"width": 27,
"height": 29,
"value": "成",
"alp": {
"value": "chéng",
"x": 90,
"y": 30,
"width": 35,
"height": 18
}
}
],
"type": "p"
},
{
"type": "table",
"size": {
"width": "80px",
"height": "50px"
},
"linePos": [
{
"row": 1,
"col": 1,
"lineNum": 2,
"data": [
{
"type": "p",
"data": [
{
"type": "word",
"x": 70,
"y": 100,
"width": 29,
"height": 27,
"value": "他",
"alp": null
}
]
}
]
}
]
}
]
},
"content": [
"形成(chéng)",
"他"
],
"loc": [
[
120,
70,
210,
150
]
]
}
}
常见问题及反馈