开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 240|回复: 4
打印 上一主题 下一主题
收起左侧

[技术专题] 【纯源码】调用有道翻译网络api 支持中翻英 或 多语翻中

[复制链接]
跳转到指定楼层
楼主
发表于 昨天 20:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式   北京市北京市
这个接口是有道为360浏览器提供的,不需要key什么的,直接调用。
  
窗口程序集名保 留  保 留备 注
程序集1   
子程序名返回值类型公开备 注
_启动子程序整数型 请在本子程序中放置易模块初始化代码
_临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
返回 (0)  ' 可以根据您的需要返回任意数值
子程序名返回值类型公开备 注
_临时子程序  
变量名类 型静态数组备 注
t整数型 
' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
t = 取启动时间 ()
' 调试输出 (UTF8到文本 (网页_访问_对象 (https://www.baidu.com)))
调试输出 (翻译文字 (“browser”))
t = 取启动时间 () - t
调试输出 (t)
子程序名返回值类型公开备 注
翻译文字文本型 调用 有道翻译网络api  支持中翻英  或  多语翻中
参数名类 型参考可空数组备 注
待翻译文本文本型
变量名类 型静态数组备 注
局_网址文本型 
局_提交协议头文本型 
局_返回结果文本型 
局_结果数组文本型2
局_待翻译文本型 
局_翻译结果文本型 
局_待翻译 = 待翻译文本
局_网址 = http://elephant.browser.360.cn/?t=translate&i= + 局_待翻译 + “&type=AUTO&doctype=text&xmlVersion=1.1&keyfrom=360se&m=youdao”
局_提交协议头 = “Connection: keep-alive”#换行符“Referer: http://fanyi.youdao.com/translate”#换行符“User-Agent:  Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36”#换行符“Accept-Language:  zh-CN,zh;q=0.8”
局_返回结果 = UTF8到文本 (网页_访问_对象 (局_网址, 0, , , , 局_提交协议头, , , , , , , , , , , ))
局_结果数组 = 分割文本 (局_返回结果, “result=”, 2)
如果 (取数组成员数 (局_结果数组) = 2)
局_翻译结果 = 局_结果数组 [2]
局_翻译结果 = 子文本替换 (局_翻译结果, “'”, “'”, , , )
局_翻译结果 = “翻译失败,请检查被翻译文本是否为空。”
返回 (局_翻译结果)
子程序名返回值类型公开备 注
网页_访问_对象字节集 使用WinHttp的对象方式访问网页
参数名类 型参考可空数组备 注
网址文本型完整的网页地址,必须包含http://或者https://
访问方式整数型0=GET 1=POST 2=HEAD 3=PUT  4=OPTIONS  5=DELETE  6=TRACE  7=CONNECT  8=PATCH
提交信息文本型"POST"专用   自动UTF8编码
提交Cookies文本型设置提交时的cookie
返回Cookies文本型返回的Cookie
附加协议头文本型一行一个请用换行符隔开
返回协议头文本型返回的协议头
返回状态代码整数型网页返回的状态代码,例如:200;302;404等
禁止重定向逻辑型默认不禁止网页重定向
字节集提交字节集提交字节集数据
代理地址文本型代理地址,格式为 8.8.8.8:88
超时整数型秒|默认为15秒,-1为无限等待
代理用户名文本型用户名
代理密码文本型密码
代理标识整数型代理标识,默认为1,0为路由器
对象继承对象此处可自行提供对象,不再主动创建
是否自动合并更新Cookie逻辑型默认为真,自动合并更新
是否补全必要协议头逻辑型当附件协议头为空时自动添加必要的UA协议头 默认为真,假将不再添加非传入协议头
是否处理协议头大小写逻辑型将协议头中的键名首字母处理为大写  默认为真
变量名类 型静态数组备 注
局_访问方式文本型 
局_WinHttp对象 
局_发送协议头文本型0
局_返回协议头文本型0
局_计次整数型 
局_网页数据字节集 
局_变体提交变体型 
局_附加协议头文本型 
如果真 (是否为空 (是否自动合并更新Cookie))
是否自动合并更新Cookie = 真

如果真 (是否为空 (是否补全必要协议头))
是否补全必要协议头 = 真

如果真 (是否为空 (是否处理协议头大小写))
是否处理协议头大小写 = 真

线程_初始化COM库 ()
如果真 (访问方式 < 0 访问方式 > 8)
访问方式 = 0
局_访问方式 = 多项选择 (访问方式 + 1, “GET”, “POST”, “HEAD”, “PUT”, “OPTIONS”, “DELETE”, “TRACE”, “CONNECT”, “PATCH”)
判断 (是否为空 (对象继承))
如果真 (局_WinHttp.创建 (“WinHttp.WinHttpRequest.5.1”, ))
返回 ({  })

局_WinHttp = 对象继承

如果真 (超时 ≠ -1)
如果 (超时 < 1)
超时 = 15000
超时 = 超时 × 1000
局_WinHttp.方法 (“SetTimeouts”, 超时, 超时, 超时, 超时)

如果真 (代理地址 ≠ “”)
局_WinHttp.方法 (“SetProxy”, 2, 代理地址)
局_WinHttp.方法 (“Open”, 局_访问方式, 网址, )
如果真 (禁止重定向)
局_WinHttp.写属性 (“Option”, 6, 0)

局_WinHttp.写属性 (“Option”, 4, 13056)  ' 忽略错误标志
局_附加协议头 = 附加协议头
如果真 (是否补全必要协议头)
如果真 (寻找文本 (局_附加协议头, “Accept:”, , ) = -1)
局_附加协议头 = 局_附加协议头 + #换行符“Accept: */*”

如果真 (寻找文本 (局_附加协议头, “Referer:”, , ) = -1)
局_附加协议头 = 局_附加协议头 + #换行符“Referer: ” + 网址

如果真 (寻找文本 (局_附加协议头, “Accept-Language:”, , ) = -1)
局_附加协议头 = 局_附加协议头 + #换行符“Accept-Language: zh-cn”

如果真 (寻找文本 (局_附加协议头, “User-Agent:”, , ) = -1)
局_附加协议头 = 局_附加协议头 + #换行符“User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)”

如果真 (访问方式 = 1)
如果真 (寻找文本 (局_附加协议头, “Content-Type:”, , ) = -1)
局_附加协议头 = 局_附加协议头 + #换行符“Content-Type: application/x-www-form-urlencoded”



如果真 (是否处理协议头大小写)
局_附加协议头 = 网页_处理协议头 (局_附加协议头)

如果真 (代理地址 ≠ “” 代理用户名 ≠ “”)
如果真 (是否为空 (代理标识))
代理标识 = 1

局_WinHttp.方法 (“SetCredentials”, 代理用户名, 代理密码, 代理标识)
如果真 (代理标识 = 1)
局_WinHttp.方法 (“SetRequestHeader”, “Proxy-Authorization”, “Basic ”编码_BASE64编码 (到字节集 (代理用户名 + “:” + 代理密码)))


如果真 (取反 (是否为空 (提交Cookies)))
如果真 (取文本长度 (提交Cookies) > 0)
如果真 (寻找文本 (提交Cookies, “Cookie:”, , ) ≠ -1)
提交Cookies = 子文本替换 (提交Cookies, “Cookie:”, “”, , , )

局_WinHttp.方法 (“SetRequestHeader”, “Cookie”, 提交Cookies)

判断 (寻找文本 (局_附加协议头, #换行符, , ) = -1)
局_WinHttp.方法 (“SetRequestHeader”, 内部_协议头取名 (局_附加协议头), 内部_协议头取值 (局_附加协议头))
局_发送协议头 = 分割文本 (局_附加协议头, #换行符, )
计次循环首 (取数组成员数 (局_发送协议头), 局_计次)
如果真 (局_发送协议头 [局_计次]“”)
如果真 (内部_协议头取名 (局_发送协议头 [局_计次])“Connection”)
如果真 (内部_协议头取值 (局_发送协议头 [局_计次])“keep-alive”)
到循环尾 ()  ' 筛选排除此参数 避免协议头有此参数 HTTP对象又自动添加此参数


局_WinHttp.方法 (“SetRequestHeader”, 内部_协议头取名 (局_发送协议头 [局_计次]), 内部_协议头取值 (局_发送协议头 [局_计次]))

计次循环尾 ()

判断 (字节集提交 = {  })
局_WinHttp.方法 (“Send”, 提交信息)
局_变体提交.赋值 (字节集提交, )
局_WinHttp.方法 (“Send”, 局_变体提交)
局_网页数据 = 局_WinHttp.读属性 (“ResponseBody”, ).取字节集 ()
返回协议头 = 局_WinHttp.读文本属性 (“GetAllResponseHeaders”, )
返回状态代码 = 局_WinHttp.读数值属性 (“Status”, )
局_WinHttp.读文本属性 (“StatusText”, )
局_返回协议头 = 分割文本 (返回协议头, #换行符, )
返回Cookies = HeadersToCookie (局_返回协议头)
如果真 (是否自动合并更新Cookie)
如果真 (取反 (是否为空 (提交Cookies)))
返回Cookies = 网页_Cookie合并更新 (提交Cookies, 返回Cookies)

局_WinHttp.清除 ()
线程_取消COM库 ()
返回 (局_网页数据)
子程序名返回值类型公开备 注
网页_Cookie合并更新文本型 返回更新后的Cookie
参数名类 型参考可空数组备 注
旧Cookie文本型
新Cookie文本型
变量名类 型静态数组备 注
局_旧Cookie组文本型0
局_新Cookie组文本型0
局_计次整数型 
' 初步格式化
旧Cookie = 删首尾空 (旧Cookie)
如果真 (取文本右边 (旧Cookie, 1)“;”)
旧Cookie = 旧Cookie + 字符 ( #空格键 )

新Cookie = 删首尾空 (新Cookie)
如果真 (取文本右边 (新Cookie, 1)“;”)
新Cookie = 新Cookie + 字符 ( #空格键 )

' 开始更新Cookie
局_旧Cookie组 = 分割文本 (旧Cookie, “; ”, )
局_新Cookie组 = 分割文本 (新Cookie, “; ”, )
计次循环首 (取数组成员数 (局_旧Cookie组), 局_计次)
如果真 (内部_数组成员是否存在1 (局_新Cookie组, 内部_Cookie取名 (局_旧Cookie组 [局_计次])) = )
加入成员 (局_新Cookie组, 局_旧Cookie组 [局_计次])

计次循环尾 ()
' 去除无效的Cookie
旧Cookie = “”
计次循环首 (取数组成员数 (局_新Cookie组), 局_计次)
如果真 (取文本右边 (局_新Cookie组 [局_计次], 8)“=deleted”)
旧Cookie = 旧Cookie + 局_新Cookie组 [局_计次]“; ”

计次循环尾 ()
旧Cookie = 取文本左边 (旧Cookie, 取文本长度 (旧Cookie) - 2)
' 对重复的Cookie进行合并
旧Cookie = 文本_去重复文本 (旧Cookie, “; ”)
返回 (旧Cookie)
子程序名返回值类型公开备 注
HeadersToCookie文本型 
参数名类 型参考可空数组备 注
aryHeaders文本型
变量名类 型静态数组备 注
dwCount整数型 
dwBegin整数型 
dwEnd整数型 
szHeaders文本型 
i整数型 
dwCount = 取数组成员数 (aryHeaders)
计次循环首 (dwCount, i)
dwBegin = 寻找文本 (aryHeaders


i支持库列表   支持库注释   
spec特殊功能支持库

  
DLL命令名返回值类型公开备 注
CoInitialize整数型 加载COM
DLL库文件名:
ole32.dll
在DLL库中对应命令名:
CoInitialize
参数名类 型传址数组备 注
pvReserved整数型值为0
DLL命令名返回值类型公开备 注
CoUninitialize 卸载COM
DLL库文件名:
ole32.dll
在DLL库中对应命令名:
CoUninitialize
参数名类 型传址数组备 注


有道翻译网络版.e (46.94 KB, 下载次数: 7)

结帖率:70% (7/10)

签到天数: 3 天

地下
发表于 8 小时前 | 只看该作者   福建省泉州市
学习学习
回复 支持 反对

使用道具 举报

签到天数: 3 天

地板
发表于 昨天 22:45 | 只看该作者   广东省东莞市
谢谢分享
回复 支持 反对

使用道具 举报

结帖率:96% (95/99)

签到天数: 3 天

板凳
发表于 昨天 21:55 | 只看该作者   安徽省宿州市
论坛不是有例子吗
回复 支持 反对

使用道具 举报

签到天数: 3 天

沙发
发表于 昨天 21:01 高大上手机用户 | 只看该作者   江西省南昌市
感谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表