写接口测试框架,找了有道翻译API来当测试数据

package com.httpGetTest;

import java.beans.Encoder;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map; public class CreatHttpUrl { public static void main(String[] args) { System.out.print(creatUrl("teacher", "en","zh-CHS"));
}
static String appKeyID = "7743eee7f7e11d75";
static String appKey = "bwPochuFLSutY4nGvyJoeUNn9GBQduzl"; /**
* 生成有道URL
* @param 要搜索的词
* @param 源语言
* @param 目标语言
* @return
*/
public static String creatUrl(String query,String from,String to)
{ String salt = String.valueOf(System.currentTimeMillis());
String sign = md5(appKeyID + query + salt + appKey);
Map<String, String> params = new HashMap<String,String>();
params.put("q", query);
params.put("from", from);
params.put("to", to);
params.put("sign", sign);
params.put("salt", salt);
params.put("appKey", appKeyID); String urlStr = "https://openapi.youdao.com/api";
return getUrlWithQueryString(urlStr, params); }
public static String createParam(String query,String from,String to)
{
String salt = String.valueOf(System.currentTimeMillis());
String sign = md5(appKeyID + query + salt + appKey);
Map<String, String> params = new HashMap<String,String>();
params.put("q", query);
params.put("from", from);
params.put("to", to);
params.put("sign", sign);
params.put("salt", salt);
params.put("appKey", appKeyID); String urlStr = "";
return getUrlWithQueryString(urlStr, params);
}
/**
* 生成32位md5摘要
* @param str
* @return
*/
public static String md5(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();
try {
/** 获得MD5摘要算法的 MessageDigest对象 **/
MessageDigest mdInst = MessageDigest.getInstance("MD5");
/** 使用指定的字节更新摘要 **/
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 (Exception e) {
e.printStackTrace();
return null;
}
}
public static String getUrlWithQueryString(String url,Map<String, String>params)
{
if (params == null) {
return url;
} StringBuilder builder = new StringBuilder(url);
if (url.contains("?")) {
builder.append("&");
} else {
builder.append("?");
} int i = 0;
for (String key : params.keySet()) {
String value = params.get(key);
if (value == null) { //过滤空key
continue;
} if (i != 0) {
builder.append('&');
} builder.append(key);
builder.append('=');
builder.append(encode(value)); i++; }
return builder.toString();
}
/**
* 进行URL编码
* @param input
* @return
*/
public static String encode(String input)
{
if (input == null) {
return "";
} try {
return URLEncoder.encode(input,"utf-8");
} catch (Exception e) {
e.printStackTrace();
}
return input;
}
}

来个链接:http://ai.youdao.com/docs/api.s

可以自己根据有道翻译的接口协议做测试

Java接口测试之使用有道翻译API的更多相关文章

  1. Android使用有道翻译API实如今线翻译功能

    在Android应用中,加入在线翻译的功能,这里调用的是有道翻译的API. 使用有道翻译API.首先要申请一个key,申请地址为:path=data-mode">有道翻译API申请地址 ...

  2. [Python] 使用有道翻译API

    Python 使用youdao (有道翻译)API 想写一个给自己记录背单词状况的软件,需要获取英文单词的中文释义(基本功能).考虑使用有道翻译的API实现获取英文单词的中文释义的方法. 获取API_ ...

  3. 利用有道翻译Api实现英文翻译功能

    有道翻译提供了翻译和查词的数据接口.通过数据接口,您可以获得一段文本的翻译结果或者查词结果.       通过调用有道翻译API数据接口,您可以在您的网站或应用中更灵活地定制翻译和查词功能. 第一步: ...

  4. C++中使用Curl和JsonCpp调用有道翻译API实现在线翻译

    使用C++开发一个在线翻译工具,这个想法在我大脑中过了好几遍了,所以就搜了下资料,得知网络上有很多翻译API,这里我选择我平时使用较多的有道翻译API进行在线翻译工具开发的练习.翻译API返回的结果常 ...

  5. 记微信开发(有道翻译api)

    记微信开发(有道翻译api) 记微信开发(有道翻译api) 效果: 有道翻译api申请: 地址:http://fanyi.youdao.com/openapi code: <?php/** * ...

  6. 有道翻译API

    轻奢侈品_百度百科 轻奢侈品 有道翻译API 有道翻译API申请成功 API key:72763558 keyfrom:lexus-studio

  7. tornado框架学习及借用有道翻译api做自动翻译页面

    趁着这几天有时间,就简单的学了一下tornado框架,简单做了个自动翻译的页面 仅为自己学习参考,不作其他用途 文件夹目录结构如下: . ├── server.py ├── static │   └─ ...

  8. C++调用有道翻译API实现在线翻译之发声篇

    大概半月前写了一篇博文:C++中使用Curl和JsonCpp调用有道翻译API实现在线翻译, 得到大家的热情捧场,有人看了文章说要是能发声不是更好,我觉得说的也是哈,能听到专家的标准发音,那该是多美的 ...

  9. 调用有道翻译API

    前两天朋友说起NASA开放了数据API,今儿突然想起从来没用过外部提供的API,然而简单用得多的貌似是有道词典API,就像试试,本来觉得应该挺简单的,用urllib模块很快就实现了. 不过测试时才发现 ...

随机推荐

  1. Xamarin XAML语言教程XAML文件结构与解析XAML

    Xamarin XAML语言教程XAML文件结构与解析XAML XAML文件结构 在上文中,我们创建XAML文件后,会看到类似图1.16所示的结构 图1.16  结构 其中,.xaml文件和.xaml ...

  2. k8s之nginx-ingress、 Daemonset实现生产案例

    上一篇中用node ip + 非80端口,访问k8s集群内部的服务.实际生产中更希望用node ip + 80端口的方式,访问k8s集群内的服务. # 修改mandatory.yaml中创建控制器部分 ...

  3. nfs详解及实现全网备份

    1.统一hosts cat /etc/hosts 172.16.1.5 lb01 172.16.1.6 lb02 172.16.1.7 web02 172.16.1.8 web01 172.16.1. ...

  4. [BZOJ5286][洛谷P4425][HNOI2018]转盘(线段树)

    5286: [Hnoi2018]转盘 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 15  Solved: 11[Submit][Status][Di ...

  5. 使用和不使用navigationbar分别处理显示和返回页面

    不使用navigationbar的情况下 AnnounceViewController *pushView = [[AnnounceViewController alloc]init];pushVie ...

  6. 安装 - LNMP一键安装包

    https://lnmp.org/ 系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian Linux系统 需要5GB以上硬盘剩余空间 需要128MB以上内存( ...

  7. HDU3572Task Schedule(最大流 ISAP比較快)建图方法不错

    Task Schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  8. OTN 交换&amp; P-OTN有效减少100G 网络成本 (三)

    OTN 交换& P-OTN有效减少100G 网络成本 (三) 城域网面临的挑战在于不仅须要支持和管理旧有的传送业务,还要支持新兴的分组业务.在城域网中,以太网业务是规模最大.增长最迅速的业务种 ...

  9. JrtpLib vs2012环境下编译及使用 GotoFirstSourceWithData 方法 进不去

    项目中有一项功能是接收rtp数据,接收rtp的可以用PJMedia,可以用JrtpLib.PJMedia库无法解决内外网的问题,只有用Jrtp库了. 首先说下Jrtp 的编译问题,我是在windows ...

  10. python 写数据到txt 文件

    # coding=utf-8 import codecs # list = [[1,2],[3,4]] list = ['{"PN":"34VT123",&qu ...