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
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ắc | Miêu tả |
---|
Truyền phương thức | HTTPS |
Thỉnh cầu phương thức | POST |
Tự phù mã hóa | Thống nhất sử dụng UTF-8 mã hóa |
Thỉnh cầu cách thức | Biểu đơn |
Hưởng ứng cách thức | JSON |
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 danh | Loại hình | Hàm nghĩa | Tất điền | Ghi chú |
---|
q | text | Đãi phiên dịch hồ sơ | True | Hồ sơ Base64 mã hóa, lớn nhỏ hạn chế vì 40M ( mã hóa sau ) |
fileName | text | Hồ sơ tên | True |
fileType | text | Hồ sơ loại hình | True | docx/pdf/doc/jpg/png/bmp/ppt/pptx/xlsx |
langFrom | text | Nguyên ngôn ngữ | True | en/zh-CHS |
langTo | text | Mục tiêu ngôn ngữ | True | en/zh-CHS |
appKey | text | Ứng dụng ID | True | Nhưng ởỨng dụng quản lýXem xét |
salt | text | UUID | True | uuid, duy nhất thông dụng phân biệt mã |
curtime | text | Trước mặt UTC thời gian chọc ( giây ) | True | Thời gian chọc timestamp |
sign | text | Ký tên | True | sha256( ứng dụng ID+input+salt+curtime+ ứng dụng chìa khóa bí mật ) |
docType | text | Server hưởng ứng loại hình | True | json |
signType | text | Ký tên loại hình | True | v3 |
- Tiến độ tuần tra tiếp lời
Tự đoạn danh | Loại hình | Hàm nghĩa | Tất điền | Ghi chú |
---|
flownumber | text | Hồ sơ nước chảy hào | True | Từ hồ sơ thượng truyền tiếp lời thu hoạch |
appKey | text | Ứng dụng ID | True | Nhưng ởỨng dụng quản lýXem xét |
salt | text | UUID | True |
curtime | text | Trước mặt UTC thời gian chọc ( giây ) | True |
sign | text | Ký tên | True | sha256( ứng dụng ID+input+salt+curtime+ ứng dụng chìa khóa bí mật ) |
docType | text | Server hưởng ứng loại hình | True | json |
signType | text | Ký tên loại hình | True | v3 |
Tự đoạn danh | Loại hình | Hàm nghĩa | Tất điền | Ghi chú |
---|
flownumber | text | Hồ sơ nước chảy hào | True | Từ hồ sơ thượng truyền tiếp lời thu hoạch |
downloadFileType | text | Download loại hình | True | word/ppt/xlsx |
appKey | text | Ứng dụng ID | True | Nhưng ởỨng dụng quản lýXem xét |
salt | text | UUID | True |
curtime | text | Trước mặt UTC thời gian chọc ( giây ) | True |
sign | text | Ký tên | True | sha256( ứng dụng ID+input+salt+curtime+ ứng dụng chìa khóa bí mật ) |
docType | text | Server hưởng ứng loại hình | True | json |
signType | text | Ký tên loại hình | True | v3 |
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 )
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:
Tự đoạn danh | Loại hình | Tự đoạn thuyết minh |
---|
errorCode | text | Sai lầm mã, nhất định tồn tại |
flownumber | text | Hồ 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 danh | Loại hình | Tự đoạn thuyết minh |
---|
errorCode | text | Sai lầm mã, nhất định tồn tại |
status | text | Tiến độ trạng thái mã, tuần tra thành công nhất định tồn tại |
statusString | text | Tiế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-Type
Vìapplication/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 danh | Loại hình | Tự đoạn thuyết minh |
---|
errorCode | text | Sai 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ả
}
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 Trung | Tiếng Anh |
Tiếng Anh | Tiếng Trung |
Hạ biểu vì các ngôn ngữ đối ứng số hiệu:
Ngôn ngữ | Số hiệu |
---|
Tiếng Trung | zh-CHS |
Tiếng Anh | en |
Hồ sơ trạng thái mã
Trạng thái mã | Hàm nghĩa |
---|
1 | Thượng truyền trung |
2 | Thay đổi trung |
3 | Phiên dịch trung |
4 | Đã hoàn thành |
5 | Sinh thành trung |
-1 | Thượng truyền thất bại |
-2 | Thay đổi thất bại |
-3 | Phiên dịch thất bại |
-4 | Đã hủy bỏ |
-5 | Sinh thành thất bại |
-10 | Phiên dịch thất bại |
-11 | Văn kiện bị xóa bỏ |
Phục vụ phối trí
Thượng truyền cách thức | Download cách thức | Đơn hồ sơ lớn nhỏ (M) | Duy trì ngôn ngữ |
---|
Word/PDF | Word | 40M 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 |
---|
101 | Khuyế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. |
102 | Không duy trì ngôn ngữ loại hình |
103 | Phiên dịch văn bản quá dài |
104 | Không duy trì API loại hình |
105 | Không duy trì ký tên loại hình |
106 | Không duy trì hưởng ứng loại hình |
107 | Khô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 |
109 | batchLog cách thức không chính xác |
110 | Vô 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. |
111 | Khai phá giả tài khoản không có hiệu quả |
112 | Thỉnh cầu phục vụ không có hiệu quả |
113 | q không thể vì không |
114 | Không duy trì hình ảnh truyền phương thức |
201 | Giải mật thất bại, khả năng vì DES,BASE64,URLDecode sai lầm |
202 | Ký 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ảnq Vì UTF-8 mã hóa. |
203 | Phỏng vấn IP địa chỉ không ở nhưng phỏng vấn IP danh sách |
205 | Thỉ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[]() |
206 | Bở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 |
207 | Trọng phóng thỉnh cầu |
301 | Từ điển tuần tra thất bại |
302 | Phiên dịch tuần tra thất bại |
303 | Phục vụ quả nhiên cái khác dị thường |
304 | Hội thoại để đó không dùng lâu lắm siêu khi |
401 | Tài khoản đã thiếu phí đình |
402 | offlinesdk không thể dùng |
411 | Phỏng vấn tần suất chịu hạn, thỉnh sau đó phỏng vấn |
412 | Trường thỉnh cầu quá mức thường xuyên, thỉnh sau đó phỏng vấn |
1001 | Không có hiệu quả OCR loại hình |
1002 | Không duy trì OCR image loại hình |
1003 | Không duy trì OCR Language loại hình |
1004 | Phân biệt hình ảnh quá lớn |
1201 | Hình ảnh base64 giải mật thất bại |
1301 | OCR đoạn phân biệt thất bại |
1411 | Phỏng vấn tần suất chịu hạn |
1412 | Vượt qua lớn nhất phân biệt byte số |
2003 | Không duy trì ngôn ngữ phân biệt Language loại hình |
2004 | Hợp thành tự phù quá dài |
2005 | Không duy trì âm tần văn kiện loại hình |
2006 | Không duy trì phát âm loại hình |
2201 | Giải mật thất bại |
2301 | Phục vụ dị thường |
2411 | Phỏng vấn tần suất chịu hạn, thỉnh sau đó phỏng vấn |
2412 | Vượt qua lớn nhất thỉnh cầu tự phù số |
3001 | Không duy trì giọng nói cách thức |
3002 | Không duy trì giọng nói thu thập mẫu suất |
3003 | Không duy trì giọng nói thanh nói |
3004 | Không duy trì giọng nói thượng truyền loại hình |
3005 | Không duy trì ngôn ngữ loại hình |
3006 | Không duy trì phân biệt loại hình |
3007 | Phân biệt âm tần văn kiện quá lớn |
3008 | Phân biệt âm tần khi trường quá dài |
3009 | Không duy trì âm tần văn kiện loại hình |
3010 | Không duy trì phát âm loại hình |
3201 | Giải mật thất bại |
3301 | Giọng nói phân biệt thất bại |
3302 | Giọng nói phiên dịch thất bại |
3303 | Phục vụ dị thường |
3411 | Phỏng vấn tần suất chịu hạn, thỉnh sau đó phỏng vấn |
3412 | Vượt qua lớn nhất thỉnh cầu tự phù số |
4001 | Không duy trì giọng nói phân biệt cách thức |
4002 | Không duy trì giọng nói phân biệt thu thập mẫu suất |
4003 | Không duy trì giọng nói phân biệt thanh nói |
4004 | Không duy trì giọng nói thượng truyền loại hình |
4005 | Không duy trì ngôn ngữ loại hình |
4006 | Phân biệt âm tần văn kiện quá lớn |
4007 | Phân biệt âm tần khi trường quá dài |
4201 | Giải mật thất bại |
4301 | Giọng nói phân biệt thất bại |
4303 | Phục vụ dị thường |
4411 | Phỏng vấn tần suất chịu hạn, thỉnh sau đó phỏng vấn |
4412 | Vượt qua lớn nhất thỉnh cầu khi trường |
5001 | Không có hiệu quả OCR loại hình |
5002 | Không duy trì OCR image loại hình |
5003 | Không duy trì ngôn ngữ loại hình |
5004 | Phân biệt hình ảnh quá lớn |
5005 | Không duy trì hình ảnh loại hình |
5006 | Văn kiện vì không |
5201 | Giải mật sai lầm, hình ảnh base64 giải mật thất bại |
5301 | OCR đoạn phân biệt thất bại |
5411 | Phỏng vấn tần suất chịu hạn |
5412 | Vượt qua lớn nhất phân biệt lưu lượng |
9001 | Không duy trì giọng nói cách thức |
9002 | Không duy trì giọng nói thu thập mẫu suất |
9003 | Không duy trì giọng nói thanh nói |
9004 | Không duy trì giọng nói thượng truyền loại hình |
9005 | Không duy trì giọng nói phân biệt Language loại hình |
9301 | ASR phân biệt thất bại |
9303 | Server bên trong sai lầm |
9411 | Phỏ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 ) |
9412 | Vượt qua lớn nhất xử lý giọng nói chiều dài |
10001 | Không có hiệu quả OCR loại hình |
10002 | Không duy trì OCR image loại hình |
10004 | Phân biệt hình ảnh quá lớn |
10201 | Hình ảnh base64 giải mật thất bại |
10301 | OCR đoạn phân biệt thất bại |
10411 | Phỏng vấn tần suất chịu hạn |
10412 | Vượt qua lớn nhất phân biệt lưu lượng |
11001 | Không duy trì giọng nói phân biệt cách thức |
11002 | Không duy trì giọng nói phân biệt thu thập mẫu suất |
11003 | Không duy trì giọng nói phân biệt thanh nói |
11004 | Không duy trì giọng nói thượng truyền loại hình |
11005 | Không duy trì ngôn ngữ loại hình |
11006 | Phân biệt âm tần văn kiện quá lớn |
11007 | Phân biệt âm tần khi trường quá dài, lớn nhất duy trì 30s |
11201 | Giải mật thất bại |
11301 | Giọng nói phân biệt thất bại |
11303 | Phục vụ dị thường |
11411 | Phỏng vấn tần suất chịu hạn, thỉnh sau đó phỏng vấn |
11412 | Vượt qua lớn nhất thỉnh cầu khi trường |
12001 | Hình ảnh kích cỡ quá lớn |
12002 | Hình ảnh base64 giải mật thất bại |
12003 | Động cơ server phản hồi sai lầm |
12004 | Hình ảnh vì không |
12005 | Không duy trì phân biệt hình ảnh loại hình |
12006 | Hình ảnh vô cùng xứng kết quả |
13001 | Không duy trì góc độ loại hình |
13002 | Không duy trì văn kiện loại hình |
13003 | Bảng biểu phân biệt hình ảnh quá lớn |
13004 | Văn kiện vì không |
13301 | Bảng biểu phân biệt thất bại |
15001 | Yêu cầu hình ảnh |
15002 | Hình ảnh quá lớn ( 1M ) |
15003 | Phục vụ thuyên chuyển thất bại |
17001 | Yêu cầu hình ảnh |
17002 | Hình ảnh quá lớn ( 1M ) |
17003 | Phân biệt loại hình không tìm được |
17004 | Không duy trì phân biệt loại hình |
17005 | Phục vụ thuyên chuyển thất bại |
18001 | Yêu cầu tham số |
18002 | Yêu cầu nước chảy hào |
18003 | Yêu cầu văn kiện danh |
18004 | Yêu cầu văn kiện loại hình |
18005 | Yêu cầu nguyên ngôn ngữ |
18006 | Yêu cầu mục tiêu ngôn ngữ |
18007 | Yêu cầu phiên dịch văn kiện |
18008 | Thượng truyền văn kiện thất bại |
18009 | Sai lầm nước chảy hào |
18010 | Chưa hoàn thành |
18011 | Thay đổi thất bại |
18012 | Tìm không thấy văn kiện |
18013 | Yêu cầu văn kiện download loại hình |
18014 | Không duy trì ngôn ngữ |
18015 | Không duy trì văn kiện loại hình |
18016 | Không duy trì download loại hình |
18017 | Vă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();
?>