Trợ giúp cùng hồ sơ> Sản phẩm hồ sơ> Tự nhiên ngôn ngữ phiên dịch phục vụ > API hồ sơ > hồ sơ phiên dịch
Hồ sơ phiên dịch

Hồ sơ phiên dịch API tóm tắt

Thuyết minh

Hi, ngài hảo, hoan nghênh sử dụng có nói trí vân hồ sơ phiên dịch API tiếp lời phục vụ.

Bổn văn đương chủ yếu nhằm vào yêu cầu tổng thể HTTP API kỹ thuật khai phá kỹ sư, kỹ càng tỉ mỉ miêu tả hồ sơ phiên dịch năng lực tương quan kỹ thuật nội dung.

Nếu ngài có cùng chúng ta thương vụ hợp tác nhu cầu, có thể thông qua dưới phương thức liên hệ chúng ta:

Thương vụ hộp thư:[email protected]

Nếu ngài đối hồ sơ nội dung có bất luận cái gì nghi vấn, có thể thông qua dưới vài loại phương thức liên hệ chúng ta:

Khách phục QQ: 1906538062

Trí vân phiên dịch kỹ thuật giao lưu QQ 1 đàn: 652880659

Trí vân phiên dịch kỹ thuật giao lưu QQ 2 đàn: 669384425

Trí vân phiên dịch kỹ thuật giao lưu QQ 3 đàn: 807539209

Trí vân phiên dịch kỹ thuật giao lưu QQ 4 đàn: 936752411

Liên hệ hộp thư:[email protected]

Ấm áp nhắc nhở:

  • Bổn văn đương chủ yếu nhằm vào khai phá nhân viên, tiếp nhập thí nghiệm trước yêu cầu thu hoạch ứng dụng ID cùng ứng dụng chìa khóa bí mật; nếu ngài còn không có, thỉnh dựa theoTay mới chỉ namThu hoạch.
  • Ngôi cao hướng mỗi cái tài khoản đưa tặng 50 nguyên thể nghiệm kim, cung người dùng tổng thể trước thí nghiệm sở dụng, cụ thể tư phí quy tắc tường thấyHồ sơ phiên dịch phục vụ báo giá.

Tiếp lời thuyết minh

Hồ sơ phiên dịch API tiếp lời cung cấp có nói hồ sơ phiên dịch phục vụ. Ngài chỉ cần thông qua thuyên chuyển hồ sơ phiên dịch API, truyền vào hồ sơ Base64 mã hóa, chỉ định nguyên ngôn ngữ cùng mục tiêu ngôn ngữ, thông qua POST thỉnh cầu phương thức, liền có thể đem hồ sơ trung văn tự nội dung tiến hành phiên dịch.

Hồ sơ phiên dịch API HTTPS địa chỉ:

  • Hồ sơ thượng truyền tiếp lời

https://openapi.youdao /file_trans/upload

  • Tiến độ tuần tra tiếp lời

https://openapi.youdao /file_trans/query

  • Hồ sơ download tiếp lời

https://openapi.youdao /file_trans/download

Hiệp nghị phải biết

Thuyên chuyển phương ở tổng thể văn bản phiên dịch API khi, thỉnh tuần hoàn dưới quy tắc.

Quy tắcMiêu tả
Truyền phương thứcHTTPS
Thỉnh cầu phương thứcPOST
Tự phù mã hóaThống nhất sử dụng UTF-8 mã hóa
Thỉnh cầu cách thứcBiểu đơn
Hưởng ứng cách thứcJSON

Tiếp lời thuyên chuyển tham số

Thuyên chuyển API yêu cầu hướng tiếp lời gửi đi dưới tự đoạn tới chơi hỏi phục vụ.

  • Hồ sơ thượng truyền tiếp lời
Tự đoạn danhLoại hìnhHàm nghĩaTất điềnGhi chú
qtextĐãi phiên dịch hồ sơTrueHồ sơ Base64 mã hóa, lớn nhỏ hạn chế vì 40M ( mã hóa sau )
fileNametextHồ sơ tênTrue
fileTypetextHồ sơ loại hìnhTruedocx/pdf/doc/jpg/png/bmp/ppt/pptx/xlsx
langFromtextNguyên ngôn ngữTrueen/zh-CHS
langTotextMục tiêu ngôn ngữTrueen/zh-CHS
appKeytextỨng dụng IDTrueNhưng ởỨng dụng quản lýXem xét
salttextUUIDTrueuuid, duy nhất thông dụng phân biệt mã
curtimetextTrước mặt UTC thời gian chọc ( giây )TrueThời gian chọc timestamp
signtextKý tênTruesha256( ứng dụng ID+input+salt+curtime+ ứng dụng chìa khóa bí mật )
docTypetextServer hưởng ứng loại hìnhTruejson
signTypetextKý tên loại hìnhTruev3
  • Tiến độ tuần tra tiếp lời
Tự đoạn danhLoại hìnhHàm nghĩaTất điềnGhi chú
flownumbertextHồ sơ nước chảy hàoTrueTừ hồ sơ thượng truyền tiếp lời thu hoạch
appKeytextỨng dụng IDTrueNhưng ởỨng dụng quản lýXem xét
salttextUUIDTrue
curtimetextTrước mặt UTC thời gian chọc ( giây )True
signtextKý tênTruesha256( ứng dụng ID+input+salt+curtime+ ứng dụng chìa khóa bí mật )
docTypetextServer hưởng ứng loại hìnhTruejson
signTypetextKý tên loại hìnhTruev3
  • Hồ sơ download tiếp lời
Tự đoạn danhLoại hìnhHàm nghĩaTất điềnGhi chú
flownumbertextHồ sơ nước chảy hàoTrueTừ hồ sơ thượng truyền tiếp lời thu hoạch
downloadFileTypetextDownload loại hìnhTrueword/ppt/xlsx
appKeytextỨng dụng IDTrueNhưng ởỨng dụng quản lýXem xét
salttextUUIDTrue
curtimetextTrước mặt UTC thời gian chọc ( giây )True
signtextKý tênTruesha256( ứng dụng ID+input+salt+curtime+ ứng dụng chìa khóa bí mật )
docTypetextServer hưởng ứng loại hìnhTruejson
signTypetextKý tên loại hìnhTruev3

Ký tên sinh thành phương pháp như sau:

sha256(Ứng dụng ID+input+salt+curtime+Ứng dụng chìa khóa bí mật)

Trong đó, input tính toán phương thức vì:

  • Hồ sơ thượng truyền tiếp lời

input=Base64 ( q ) tự phù xuyến( đương Base64 ( q ) chiều dài nhỏ hơn hoặc bằng 20 )
Hoặc
input=Base64 ( q ) trước 10 cái tự phù trước 10 cái tự phù+Base64 ( q ) chiều dài+Base64 ( q ) sau mười cái tự phù( đương Base64 ( q ) chiều dài lớn hơn 20 )

  • Cái khác tiếp lời

input=flownumber tự phù xuyến( đương flownumber chiều dài nhỏ hơn hoặc bằng 20 ).
Hoặc
input=flownumber trước 10 cái tự phù trước 10 cái tự phù+flownumber chiều dài+flownumber sau mười cái tự phù( đương flownumber chiều dài lớn hơn 20 )

Bất đồng ngôn ngữ thu hoạch thời gian chọc, thỉnh xem thêmNày liên tiếp

Nếu đối ký tên có nghi vấn, có thể xem thêm hồ sơ cuối cùng các ngôn ngữ demo.

Phát ra kết quả

Phản hồi kết quả là json cách thức, cụ thể thuyết minh như sau:

  • Hồ sơ thượng truyền
Tự đoạn danhLoại hìnhTự đoạn thuyết minh
errorCodetextSai lầm mã, nhất định tồn tại
flownumbertextHồ sơ nước chảy hào, thượng truyền thành công nhất định tồn tại
  • Tiến độ tuần tra tiếp lời
Tự đoạn danhLoại hìnhTự đoạn thuyết minh
errorCodetextSai lầm mã, nhất định tồn tại
statustextTiến độ trạng thái mã, tuần tra thành công nhất định tồn tại
statusStringtextTiến độ trạng thái miêu tả, tuần tra thành công nhất định tồn tại
  • Hồ sơ download tiếp lời
    NếuContent-Typeapplication/json,Tỏ vẻ download thất bại, phản hồi giá trị vì json, nếu không phản hồi giá trị vì văn kiện lưu.
Tự đoạn danhLoại hìnhTự đoạn thuyết minh
errorCodetextSai lầm mã, download thất bại khi tồn tại

Thí dụ mẫu

  • Hồ sơ thượng truyền tiếp lời

Phản hồi kết quả:

{
"errorCode": "0", // sai lầm mã
"flownumber": "C9193F8204484E51B7DDA604137AEE3D" // hồ sơ nước chảy hào
}
  • Tiến độ tuần tra tiếp lời

Phản hồi kết quả:

{
"errorCode": "0", // sai lầm mã
"status": 1, // trạng thái mã
"statusString": "Thượng truyền trung ' // trạng thái miêu tả
}
  • Hồ sơ download tiếp lời

Thất bại khi phản hồi kết quả:

{
"errorCode": "0" // sai lầm mã
}

Duy trì ngôn ngữ biểu

Nguyên ngôn ngữDuy trì mục tiêu ngôn ngữ
Tiếng TrungTiếng Anh
Tiếng AnhTiếng Trung

Hạ biểu vì các ngôn ngữ đối ứng số hiệu:

Ngôn ngữSố hiệu
Tiếng Trungzh-CHS
Tiếng Anhen

Hồ sơ trạng thái mã

Trạng thái mãHàm nghĩa
1Thượng truyền trung
2Thay đổi trung
3Phiên dịch trung
4Đã hoàn thành
5Sinh thành trung
-1Thượng truyền thất bại
-2Thay đổi thất bại
-3Phiên dịch thất bại
-4Đã hủy bỏ
-5Sinh thành thất bại
-10Phiên dịch thất bại
-11Văn kiện bị xóa bỏ

Phục vụ phối trí

Thượng truyền cách thứcDownload cách thứcĐơn hồ sơ lớn nhỏ (M)Duy trì ngôn ngữ
Word/PDFWord40M nội ( mã hóa sau )Trung anh lẫn nhau dịch

Sai lầm số hiệu danh sách

Sai lầm mãHàm nghĩa
101Khuyết thiếu tất điền tham số, đầu tiên bảo đảm tất điền tham số đầy đủ hết, sau đó, xác nhận tham số viết hay không chính xác.
102Không duy trì ngôn ngữ loại hình
103Phiên dịch văn bản quá dài
104Không duy trì API loại hình
105Không duy trì ký tên loại hình
106Không duy trì hưởng ứng loại hình
107Không duy trì truyền mã hóa loại hình
108Ứng dụng ID không có hiệu quả, đăng ký tài khoản, đăng nhập hậu trường sáng tạo ứng dụng cùng ví dụ thực tế cũng hoàn thành trói định, nhưng đạt được ứng dụng ID cùng ứng dụng chìa khóa bí mật chờ tin tức
109batchLog cách thức không chính xác
110Vô tương quan phục vụ hữu hiệu ví dụ thực tế, ứng dụng không có trói định phục vụ ví dụ thực tế, có thể tân kiến phục vụ ví dụ thực tế, trói định phục vụ ví dụ thực tế. Chú: Nào đó phục vụ phiên dịch kết quả phát âm yêu cầu tts ví dụ thực tế, yêu cầu ở khống chế đài sáng tạo giọng nói hợp thành ví dụ thực tế trói định ứng dụng phía sau có thể sử dụng.
111Khai phá giả tài khoản không có hiệu quả
112Thỉnh cầu phục vụ không có hiệu quả
113q không thể vì không
114Không duy trì hình ảnh truyền phương thức
201Giải mật thất bại, khả năng vì DES,BASE64,URLDecode sai lầm
202Ký tên kiểm nghiệm thất bại, nếu xác nhận ứng dụng ID cùng ứng dụng chìa khóa bí mật chính xác tính, vẫn phản hồi 202, giống nhau là mã hóa vấn đề. Thỉnh bảo đảm phiên dịch văn bảnqVì UTF-8 mã hóa.
203Phỏng vấn IP địa chỉ không ở nhưng phỏng vấn IP danh sách
205Thỉnh cầu tiếp lời cùng ứng dụng ngôi cao loại hình không nhất trí, bảo đảm tiếp nhập phương thức ( Android SDK, IOS SDK, API ) cùng sáng tạo ứng dụng ngôi cao loại hình nhất trí. Như có nghi vấn thỉnh tham khảoNhập môn chỉ nam[]()
206Bởi vì thời gian chọc không có hiệu quả dẫn tới ký tên kiểm tra thất bại
207Trọng phóng thỉnh cầu
301Từ điển tuần tra thất bại
302Phiên dịch tuần tra thất bại
303Phục vụ quả nhiên cái khác dị thường
304Hội thoại để đó không dùng lâu lắm siêu khi
401Tài khoản đã thiếu phí đình
402offlinesdk không thể dùng
411Phỏng vấn tần suất chịu hạn, thỉnh sau đó phỏng vấn
412Trường thỉnh cầu quá mức thường xuyên, thỉnh sau đó phỏng vấn
1001Không có hiệu quả OCR loại hình
1002Không duy trì OCR image loại hình
1003Không duy trì OCR Language loại hình
1004Phân biệt hình ảnh quá lớn
1201Hình ảnh base64 giải mật thất bại
1301OCR đoạn phân biệt thất bại
1411Phỏng vấn tần suất chịu hạn
1412Vượt qua lớn nhất phân biệt byte số
2003Không duy trì ngôn ngữ phân biệt Language loại hình
2004Hợp thành tự phù quá dài
2005Không duy trì âm tần văn kiện loại hình
2006Không duy trì phát âm loại hình
2201Giải mật thất bại
2301Phục vụ dị thường
2411Phỏng vấn tần suất chịu hạn, thỉnh sau đó phỏng vấn
2412Vượt qua lớn nhất thỉnh cầu tự phù số
3001Không duy trì giọng nói cách thức
3002Không duy trì giọng nói thu thập mẫu suất
3003Không duy trì giọng nói thanh nói
3004Không duy trì giọng nói thượng truyền loại hình
3005Không duy trì ngôn ngữ loại hình
3006Không duy trì phân biệt loại hình
3007Phân biệt âm tần văn kiện quá lớn
3008Phân biệt âm tần khi trường quá dài
3009Không duy trì âm tần văn kiện loại hình
3010Không duy trì phát âm loại hình
3201Giải mật thất bại
3301Giọng nói phân biệt thất bại
3302Giọng nói phiên dịch thất bại
3303Phục vụ dị thường
3411Phỏng vấn tần suất chịu hạn, thỉnh sau đó phỏng vấn
3412Vượt qua lớn nhất thỉnh cầu tự phù số
4001Không duy trì giọng nói phân biệt cách thức
4002Không duy trì giọng nói phân biệt thu thập mẫu suất
4003Không duy trì giọng nói phân biệt thanh nói
4004Không duy trì giọng nói thượng truyền loại hình
4005Không duy trì ngôn ngữ loại hình
4006Phân biệt âm tần văn kiện quá lớn
4007Phân biệt âm tần khi trường quá dài
4201Giải mật thất bại
4301Giọng nói phân biệt thất bại
4303Phục vụ dị thường
4411Phỏng vấn tần suất chịu hạn, thỉnh sau đó phỏng vấn
4412Vượt qua lớn nhất thỉnh cầu khi trường
5001Không có hiệu quả OCR loại hình
5002Không duy trì OCR image loại hình
5003Không duy trì ngôn ngữ loại hình
5004Phân biệt hình ảnh quá lớn
5005Không duy trì hình ảnh loại hình
5006Văn kiện vì không
5201Giải mật sai lầm, hình ảnh base64 giải mật thất bại
5301OCR đoạn phân biệt thất bại
5411Phỏng vấn tần suất chịu hạn
5412Vượt qua lớn nhất phân biệt lưu lượng
9001Không duy trì giọng nói cách thức
9002Không duy trì giọng nói thu thập mẫu suất
9003Không duy trì giọng nói thanh nói
9004Không duy trì giọng nói thượng truyền loại hình
9005Không duy trì giọng nói phân biệt Language loại hình
9301ASR phân biệt thất bại
9303Server bên trong sai lầm
9411Phỏng vấn tần suất chịu hạn ( vượt qua lớn nhất thuyên chuyển số lần )
9412Vượt qua lớn nhất xử lý giọng nói chiều dài
10001Không có hiệu quả OCR loại hình
10002Không duy trì OCR image loại hình
10004Phân biệt hình ảnh quá lớn
10201Hình ảnh base64 giải mật thất bại
10301OCR đoạn phân biệt thất bại
10411Phỏng vấn tần suất chịu hạn
10412Vượt qua lớn nhất phân biệt lưu lượng
11001Không duy trì giọng nói phân biệt cách thức
11002Không duy trì giọng nói phân biệt thu thập mẫu suất
11003Không duy trì giọng nói phân biệt thanh nói
11004Không duy trì giọng nói thượng truyền loại hình
11005Không duy trì ngôn ngữ loại hình
11006Phân biệt âm tần văn kiện quá lớn
11007Phân biệt âm tần khi trường quá dài, lớn nhất duy trì 30s
11201Giải mật thất bại
11301Giọng nói phân biệt thất bại
11303Phục vụ dị thường
11411Phỏng vấn tần suất chịu hạn, thỉnh sau đó phỏng vấn
11412Vượt qua lớn nhất thỉnh cầu khi trường
12001Hình ảnh kích cỡ quá lớn
12002Hình ảnh base64 giải mật thất bại
12003Động cơ server phản hồi sai lầm
12004Hình ảnh vì không
12005Không duy trì phân biệt hình ảnh loại hình
12006Hình ảnh vô cùng xứng kết quả
13001Không duy trì góc độ loại hình
13002Không duy trì văn kiện loại hình
13003Bảng biểu phân biệt hình ảnh quá lớn
13004Văn kiện vì không
13301Bảng biểu phân biệt thất bại
15001Yêu cầu hình ảnh
15002Hình ảnh quá lớn ( 1M )
15003Phục vụ thuyên chuyển thất bại
17001Yêu cầu hình ảnh
17002Hình ảnh quá lớn ( 1M )
17003Phân biệt loại hình không tìm được
17004Không duy trì phân biệt loại hình
17005Phục vụ thuyên chuyển thất bại
18001Yêu cầu tham số
18002Yêu cầu nước chảy hào
18003Yêu cầu văn kiện danh
18004Yêu cầu văn kiện loại hình
18005Yêu cầu nguyên ngôn ngữ
18006Yêu cầu mục tiêu ngôn ngữ
18007Yêu cầu phiên dịch văn kiện
18008Thượng truyền văn kiện thất bại
18009Sai lầm nước chảy hào
18010Chưa hoàn thành
18011Thay đổi thất bại
18012Tìm không thấy văn kiện
18013Yêu cầu văn kiện download loại hình
18014Không duy trì ngôn ngữ
18015Không duy trì văn kiện loại hình
18016Không duy trì download loại hình
18017Văn kiện quá lớn

Thường dùng ngôn ngữ Demo

Java thí dụ mẫu

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.*;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;

public class Demo {

private static Logger logger = LoggerFactory.getLogger(Demo.class);

private static final String YOUDAO_URL_UPLOAD = "https://openapi.youdao /file_trans/upload";

private static final String YOUDAO_URL_QUERY = "https://openapi.youdao /file_trans/query";

private static final String YOUDAO_URL_DOWNLOAD = "https://openapi.youdao /file_trans/download";

private static final String APP_KEY = "Ngài ứng dụng ID";

private static final String APP_SECRET = "Ngài ứng dụng chìa khóa bí mật";

public static void main(String[] args) throws IOException {
upload();
query();
download();
}

public static void upload() throws IOException {
Map<String,String> params = new HashMap<String,String>();
String q = loadAsBase64( "Văn kiện đường nhỏ" );
String salt = String.valueOf(System.currentTimeMillis());
String curtime = String.valueOf(System.currentTimeMillis() / 1000);
String signStr = APP_KEY + truncate(q) + salt + curtime + APP_SECRET;
String sign = getDigest(signStr);
params.put( "q", q);
params.put( "fileName", "Văn kiện tên" );
params.put( "fileType", "Văn kiện loại hình" );
params.put( "langFrom", "Nguyên ngôn ngữ" );
params.put( "langTo", "Mục tiêu ngôn ngữ" );
params.put( "appKey", APP_KEY);
params.put( "salt", salt);
params.put( "curtime", curtime);
params.put( "sign", sign);
params.put( "docType", "json" );
params.put( "signType", "v3" );
String result = requestForHttp(YOUDAO_URL_UPLOAD, params);
/** xử lý kết quả */
System.out.println(result);
}

public static void query() throws IOException {
Map<String,String> params = new HashMap<String,String>();
String flownumber = "Văn kiện nước chảy hào";
String salt = String.valueOf(System.currentTimeMillis());
String curtime = String.valueOf(System.currentTimeMillis() / 1000);
String signStr = APP_KEY + truncate(flownumber) + salt + curtime + APP_SECRET;
String sign = getDigest(signStr);
params.put( "flownumber", flownumber);
params.put( "appKey", APP_KEY);
params.put( "salt", salt);
params.put( "curtime", curtime);
params.put( "sign", sign);
params.put( "docType", "json" );
params.put( "signType", "v3" );
String result = requestForHttp(YOUDAO_URL_QUERY, params);
/** xử lý kết quả */
System.out.println(result);
}

public static void download() throws IOException {
Map<String,String> params = new HashMap<String,String>();
String flownumber = "Văn kiện nước chảy hào";
String salt = String.valueOf(System.currentTimeMillis());
String curtime = String.valueOf(System.currentTimeMillis() / 1000);
String signStr = APP_KEY + truncate(flownumber) + salt + curtime + APP_SECRET;
String sign = getDigest(signStr);
params.put( "flownumber", flownumber);
params.put( "downloadFileType", "Văn kiện download loại hình" );
params.put( "appKey", APP_KEY);
params.put( "salt", salt);
params.put( "curtime", curtime);
params.put( "sign", sign);
params.put( "docType", "json" );
params.put( "signType", "v3" );
String result = requestForHttp(YOUDAO_URL_DOWNLOAD, params);
/** xử lý kết quả */
System.out.println(result);
}

public static String requestForHttp(String url,Map<String,String> params) throws IOException {
String result = "";

/** sáng tạo HttpClient */
CloseableHttpClient httpClient = HttpClients.createDefault();

/** httpPost */
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> paramsList = new ArrayList<NameValuePair>();
Iterator<Map.Entry<String,String>> it = params.entrySet().iterator();
while(it.hasNext()){
Map.Entry<String,String> en = it.next();
String key = en.getKey();
String value = en.getValue();
paramsList.add(new BasicNameValuePair(key,value));
}
httpPost.setEntity(new UrlEncodedFormEntity(paramsList, "UTF-8" ));
CloseableHttpResponse httpResponse = httpClient.execute(httpPost);
try{
HttpEntity httpEntity = httpResponse.getEntity();
result = EntityUtils.toString(httpEntity, "UTF-8" );
EntityUtils.consume(httpEntity);
}finally {
try{
if(httpResponse!=null){
httpResponse.close();
}
}catch(IOException e){
logger.info( "## release resouce error ##" + e);
}
}
return result;
}

/**
* sinh thành mã hóa tự đoạn
*/
public static String getDigest(String string) {
if (string == null) {
return null;
}
char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
byte[] btInput = string.getBytes(StandardCharsets.UTF_8);
try {
MessageDigest mdInst = MessageDigest.getInstance( "SHA-256" );
mdInst.update(btInput);
byte[] md = mdInst.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (byte byte0: md) {
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (NoSuchAlgorithmException e) {
return null;
}
}

public static String loadAsBase64(String imgFile)
{// đem văn kiện chuyển hóa vì byte số tổ tự phù xuyến, cũng đối này tiến hành Base64 mã hóa xử lý

File file = new File(imgFile);
if(!file.exists()){
logger.error( "Văn kiện không tồn tại" );
return null;
}
InputStream in = null;
byte[] data = null;
// đọc lấy văn kiện byte số tổ
try
{
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
// đối byte số tổ Base64 mã hóa
return Base64.getEncoder().encodeToString(data);// phản hồi Base64 mã hóa quá byte số tổ tự phù xuyến
}

public static String truncate(String q) {
if (q == null) {
return null;
}
int len = q.length();
String result;
return len <= 20? q: (q.substring(0, 10) + len + q.substring(len - 10, len));
}
}

Python thí dụ mẫu

# -*- coding: utf-8 -*-
import sys
import uuid
import requests
import base64
import hashlib
import time

reload(sys)
sys.setdefaultencoding('utf-8')

YOUDAO_URL_UPLOAD = 'https://openapi.youdao /file_trans/upload'
YOUDAO_URL_QUERY = 'https://openapi.youdao /file_trans/query'
YOUDAO_URL_DOWNLOAD = 'https://openapi.youdao /file_trans/download'
APP_KEY = ' ngài ứng dụng ID'
APP_SECRET = ' ngài ứng dụng chìa khóa bí mật '


def truncate(q):
if q is None:
return None
q_utf8 = q.decode( "utf-8" )
size = len(q_utf8)
return q_utf8 if size <= 20 else q_utf8[0:10] + str(size) + q_utf8[size - 10:size]


def encrypt(signStr):
hash_algorithm = hashlib.sha256()
hash_algorithm.update(signStr.encode('utf-8'))
return hash_algorithm.hexdigest()


def do_request(url, data):
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
return requests.post(url, data=data, headers=headers)


def upload():
f = open(r' văn kiện đường nhỏ ', 'rb') # cơ số hai phương thức mở ra văn kiện
q = base64.b64encode(f.read()) # đọc lấy văn kiện nội dung, thay đổi vì base64 mã hóa
f.close()
salt = str(uuid.uuid1())
curtime = str(int(time.time()))
signStr = APP_KEY + truncate(q) + salt + curtime + APP_SECRET
sign = encrypt(signStr)

data = {}
data['q'] = q
data['fileName'] = ' văn kiện tên '
data['fileType'] = ' văn kiện loại hình '
data['langFrom'] = ' nguyên ngôn ngữ '
data['langTo'] = ' mục tiêu ngôn ngữ '
data['appKey'] = APP_KEY
data['salt'] = salt
data['curtime'] = curtime
data['sign'] = sign
data['docType'] = 'json'
data['signType'] = 'v3'

response = do_request(YOUDAO_URL_UPLOAD, data)
print response.content


def query():
flownumber = ' văn kiện nước chảy hào '
salt = str(uuid.uuid1())
curtime = str(int(time.time()))
signStr = APP_KEY + truncate(flownumber) + salt + curtime + APP_SECRET
sign = encrypt(signStr)

data = {}
data['flownumber'] = flownumber
data['appKey'] = APP_KEY
data['salt'] = salt
data['curtime'] = curtime
data['sign'] = sign
data['docType'] = 'json'
data['signType'] = 'v3'

response = do_request(YOUDAO_URL_QUERY, data)
print response.content


def download():
flownumber = ' văn kiện nước chảy hào '
salt = str(uuid.uuid1())
curtime = str(int(time.time()))
signStr = APP_KEY + truncate(flownumber) + salt + curtime + APP_SECRET
sign = encrypt(signStr)

data = {}
data['flownumber'] = flownumber
data['downloadFileType'] = ' văn kiện download loại hình '
data['appKey'] = APP_KEY
data['salt'] = salt
data['curtime'] = curtime
data['sign'] = sign
data['docType'] = 'json'
data['signType'] = 'v3'

response = do_request(YOUDAO_URL_DOWNLOAD, data)
print response.content


if __name__ == '__main__':
upload()
query()
download()

C# thí dụ mẫu

using System;
using System.IO;
using System.Net;
using System.Text;
using System.Collections.Generic;
using System.Security.Cryptography;

namespace zhiyun_csharp_demo
{
class Demo
{
public static void Main()
{
Upload();
Query();
Download();
}

protected static void Upload() {
Dictionary dic = new Dictionary();
string appKey = "Ngài ứng dụng ID";
string appSecret = "Ngài ứng dụng chìa khóa bí mật";
string url = "https://openapi.youdao /file_trans/upload";
string q = LoadAsBase64( "Văn kiện đường nhỏ" );
string salt = DateTime.Now.Millisecond.ToString();
TimeSpan ts = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc));
long millis = (long) ts.TotalMilliseconds;
string curtime = Convert.ToString(millis / 1000);
string signStr = appKey + Truncate(q) + salt + curtime + appSecret;;
string sign = ComputeHash(signStr, new SHA256CryptoServiceProvider());
dic.Add( "q", System.Web.HttpUtility.UrlEncode(q));
dic.Add( "fileName", "Văn kiện tên" );
dic.Add( "fileType", "Văn kiện loại hình" );
dic.Add( "langFrom", "Nguyên ngôn ngữ" );
dic.Add( "langTo", "Mục tiêu ngôn ngữ" );
dic.Add( "appKey", appKey);
dic.Add( "salt", salt);
dic.Add( "curtime", curtime);
dic.Add( "sign", sign);
dic.Add( "docType", "json" );
dic.Add( "signType", "v3" );
string result = Post(url, dic);
Console.WriteLine(result);
}

protected static void Query() {
Dictionary dic = new Dictionary();
string appKey = "Ngài ứng dụng ID";
string appSecret = "Ngài ứng dụng chìa khóa bí mật";
string url = "https://openapi.youdao /file_trans/query";
string flownumber = "Văn kiện nước chảy hào";
string salt = DateTime.Now.Millisecond.ToString();
TimeSpan ts = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc));
long millis = (long) ts.TotalMilliseconds;
string curtime = Convert.ToString(millis / 1000);
string signStr = appKey + Truncate(flownumber) + salt + curtime + appSecret;;
string sign = ComputeHash(signStr, new SHA256CryptoServiceProvider());
dic.Add( "flownumber", flownumber);
dic.Add( "appKey", appKey);
dic.Add( "salt", salt);
dic.Add( "curtime", curtime);
dic.Add( "sign", sign);
dic.Add( "docType", "json" );
dic.Add( "signType", "v3" );
string result = Post(url, dic);
Console.WriteLine(result);
}

protected static void Download() {
Dictionary dic = new Dictionary();
string appKey = "Ngài ứng dụng ID";
string appSecret = "Ngài ứng dụng chìa khóa bí mật";
string url = "https://openapi.youdao /file_trans/download";
string flownumber = "Văn kiện nước chảy hào";
string salt = DateTime.Now.Millisecond.ToString();
TimeSpan ts = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc));
long millis = (long) ts.TotalMilliseconds;
string curtime = Convert.ToString(millis / 1000);
string signStr = appKey + Truncate(flownumber) + salt + curtime + appSecret;;
string sign = ComputeHash(signStr, new SHA256CryptoServiceProvider());
dic.Add( "flownumber", flownumber);
dic.Add( "downloadFileType", "Văn kiện download loại hình" );
dic.Add( "appKey", appKey);
dic.Add( "salt", salt);
dic.Add( "curtime", curtime);
dic.Add( "sign", sign);
dic.Add( "docType", "json" );
dic.Add( "signType", "v3" );
string result = Post(url, dic);
Console.WriteLine(result);
}

protected static string ComputeHash(string input, HashAlgorithm algorithm)
{
Byte[] inputBytes = Encoding.UTF8.GetBytes(input);
Byte[] hashedBytes = algorithm.ComputeHash(inputBytes);
return BitConverter.ToString(hashedBytes).Replace( "-", "" );
}

protected static string Truncate(string q)
{
if (q == null)
{
return null;
}
int len = q.Length;
return len <= 20? q: (q.Substring(0, 10) + len + q.Substring(len - 10, 10));
}

protected static string LoadAsBase64(string filename)
{
try
{
FileStream filestream = new FileStream(filename, FileMode.Open);
byte[] arr = new byte[filestream.Length];
filestream.Position = 0;
filestream.Read(arr, 0, (int)filestream.Length);
filestream.Close();
return Convert.ToBase64String(arr);
}
catch (Exception ex)
{
return null;
}
}

protected static string Post(string url, Dictionary dic)
{
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
StringBuilder builder = new StringBuilder();
int i = 0;
foreach (var item in dic)
{
if (i > 0)
builder.Append( "&" );
builder.AppendFormat( "{0}={1}", item.Key, item.Value);
i++;
}
byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
return result;
}
}
}

PHP thí dụ mẫu

<?php
define( "CURL_TIMEOUT", 2000);
define( "URL_UPLOAD", "https://openapi.youdao /file_trans/upload" );
define( "URL_QUERY", "https://openapi.youdao /file_trans/query" );
define( "URL_DOWNLOAD", "https://openapi.youdao /file_trans/download" );
define( "APP_KEY", "Ngài ứng dụng ID" ); // thay đổi vì ngài ứng dụng ID
define( "SEC_KEY", "Ngài ứng dụng chìa khóa bí mật" ); // thay đổi vì ngài chìa khóa bí mật

function upload()
{
$file = "Văn kiện đường nhỏ";
$fp = fopen($file, "r" ) or die( "Can't open file" );
// base64 mã hóa
$q = base64_encode(fread($fp, filesize($file)));
fclose($fp);
$salt = create_guid();
$curtime = strtotime( "now" );
$signStr = APP_KEY. truncate($q). $salt. $curtime. SEC_KEY;
$args = array(
'appKey' => APP_KEY,
'salt' => $salt,
);
$args['q'] = $q;
$args['fileName'] = ' văn kiện tên ';
$args['fileType'] = ' văn kiện loại hình ';
$args['langFrom'] = ' nguyên ngôn ngữ ';
$args['langTo'] = ' mục tiêu ngôn ngữ ';
$args['curtime'] = $curtime;
$args['sign'] = hash( "sha256", $signStr);
$args['docType'] = 'json';
$args['signType'] = 'v3';
$ret = call(URL_UPLOAD, $args);
print_r($ret);
$ret = json_decode($ret, true);
return $ret;
}

function query()
{
$flownumber = "Văn kiện nước chảy hào";
$salt = create_guid();
$curtime = strtotime( "now" );
$signStr = APP_KEY. truncate($flownumber). $salt. $curtime. SEC_KEY;
$args = array(
'appKey' => APP_KEY,
'salt' => $salt,
);
$args['flownumber'] = $flownumber;
$args['curtime'] = $curtime;
$args['sign'] = hash( "sha256", $signStr);
$args['docType'] = 'json';
$args['signType'] = 'v3';
$ret = call(URL_QUERY, $args);
print_r($ret);
$ret = json_decode($ret, true);
return $ret;
}

function download()
{
$flownumber = "Văn kiện nước chảy hào";
$salt = create_guid();
$curtime = strtotime( "now" );
$signStr = APP_KEY. truncate($flownumber). $salt. $curtime. SEC_KEY;
$args = array(
'appKey' => APP_KEY,
'salt' => $salt,
);
$args['flownumber'] = $flownumber;
$args['downloadFileType'] = ' văn kiện download loại hình ';
$args['curtime'] = $curtime;
$args['sign'] = hash( "sha256", $signStr);
$args['docType'] = 'json';
$args['signType'] = 'v3';
$ret = call(URL_DOWNLOAD, $args);
print_r($ret);
$ret = json_decode($ret, true);
return $ret;
}

// khởi xướng internet thỉnh cầu
function call($url, $args=null, $method= "post", $testflag = 0, $timeout = CURL_TIMEOUT, $headers=array())
{
$ret = false;
$i = 0;
while($ret === false)
{
if($i > 1)
break;
if($i > 0)
{
sleep(1);
}
$ret = callOnce($url, $args, $method, false, $timeout, $headers);
$i++;
}
return $ret;
}

function callOnce($url, $args=null, $method= "post", $withCookie = false, $timeout = CURL_TIMEOUT, $headers=array())
{
$ch = curl_init();
if($method == "post" )
{
$data = convert($args);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_POST, 1);
}
else
{
$data = convert($args);
if($data)
{
if(stripos($url, "?" ) > 0)
{
$url.= "&$data";
}
else
{
$url.= "?$data";
}
}
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if(!empty($headers))
{
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
if($withCookie)
{
curl_setopt($ch, CURLOPT_COOKIEJAR, $_COOKIE);
}
$r = curl_exec($ch);
curl_close($ch);
return $r;
}

function convert(&$args)
{
$data = '';
if (is_array($args))
{
foreach ($args as $key=>$val)
{
if (is_array($val))
{
foreach ($val as $k=>$v)
{
$data.= $key.'['.$k.']='.rawurlencode($v).'&';
}
}
else
{
$data.= "$key=".rawurlencode($val). "&";
}
}
return trim($data, "&" );
}
return $args;
}

// uuid generator
function create_guid(){
$microTime = microtime();
list($a_dec, $a_sec) = explode( "", $microTime);
$dec_hex = dechex($a_dec* 1000000);
$sec_hex = dechex($a_sec);
ensure_length($dec_hex, 5);
ensure_length($sec_hex, 6);
$guid = "";
$guid.= $dec_hex;
$guid.= create_guid_section(3);
$guid.= '-';
$guid.= create_guid_section(4);
$guid.= '-';
$guid.= create_guid_section(4);
$guid.= '-';
$guid.= create_guid_section(4);
$guid.= '-';
$guid.= $sec_hex;
$guid.= create_guid_section(6);
return $guid;
}

function truncate($q) {
$len = abslength($q);
return $len <= 20? $q: (mb_substr($q, 0, 10). $len. mb_substr($q, $len - 10, $len));
}

function abslength($str)
{
if(empty($str)){
return 0;
}
if(function_exists('mb_strlen')){
return mb_strlen($str,'utf-8');
}
else {
preg_match_all( "/./u", $str, $ar);
return count($ar[0]);
}
}

function ensure_length(&$string, $length){
$strlen = strlen($string);
if($strlen < $length)
{
$string = str_pad($string, $length, "0" );
}
else if($strlen > $length)
{
$string = substr($string, 0, $length);
}
}

function create_guid_section($characters){
$return = "";
for($i = 0; $i < $characters; $i++)
{
$return.= dechex(mt_rand(0,15));
}
return $return;
}
// đưa vào
upload();
query();
download();
?>