'use strict';
|
/**
|
* Copyright (c) 2017 Baidu.com, Inc. All Rights Reserved
|
*
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
* the License. You may obtain a copy of the License at
|
*
|
* http://www.apache.org/licenses/LICENSE-2.0
|
*
|
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
* specific language governing permissions and limitations under the License.
|
*
|
* @file httpClientExt类
|
* @author baiduAip
|
*/
|
|
const HttpClient = require('./httpClient');
|
const crypto = require('crypto');
|
|
/**
|
* HttpClientVoice类
|
* 百度语音接口调用封装
|
* 参考文档:http://speech.baidu.com/docs/asr/57
|
*
|
* @class
|
* @extends HttpClient
|
* @constructor
|
*/
|
class HttpClientVoiceASR extends HttpClient {
|
constructor() {
|
super();
|
}
|
postWithInfo(requestInfo) {
|
requestInfo.params.token = requestInfo.getAccessToken();
|
if (requestInfo.params.token === null) {
|
requestInfo.params.token = 'bcekey';
|
}
|
if (typeof requestInfo.params.cuid === 'undefined') {
|
requestInfo.params.cuid = this.genMd5(requestInfo.params.token);
|
}
|
let body = this.createBody(requestInfo.params);
|
let options = {
|
method: requestInfo.method,
|
url: requestInfo.getPureUrl(),
|
headers: requestInfo.headers,
|
encoding: null,
|
timeout: HttpClient.DEFAULT_TIMEOUT,
|
body: body
|
};
|
|
return this.req(options);
|
}
|
createBody(param) {
|
let body = JSON.stringify(param);
|
return body;
|
}
|
genMd5(str) {
|
let md5sum = crypto.createHash('md5');
|
md5sum.update(str);
|
str = md5sum.digest('hex');
|
return str;
|
}
|
}
|
|
module.exports = HttpClientVoiceASR;
|