FastJson之有道翻译
在AndroidMainifast.xml中加入相应的访问权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
在新的线程中连接网络,调用ConnNet.getNet()
public class ConnNet {
public String getNet(String msg) {
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("keyfrom", "rongguangfdasds"));
pairs.add(new BasicNameValuePair("key", "498519883"));
pairs.add(new BasicNameValuePair("type", "data"));
pairs.add(new BasicNameValuePair("doctype", "json"));
pairs.add(new BasicNameValuePair("version", "1.1"));
pairs.add(new BasicNameValuePair("q", msg));
String result= "";
ArrayList<Web> webs;
try {
Trans trans=new Trans();
trans = (Trans)new Http().get("openapi.do",pairs, Trans.class);
webs=trans.getWeb();
for(Web web:webs){
result+=web.getKey()+"-->"+web.getValue()+"<p>";
}
result+= trans.getTranslation()[0];
// result = new Http().get("openapi.do",pairs, Map.class).toString();
} catch (Exception e) {
return e.getMessage();
}
// HttpClient httpClient = new DefaultHttpClient();
// HttpGet httpGet = new HttpGet("http://fanyi.youdao.com/openapi.do?keyfrom=rongguangfdasds&key=498519883&type=data&doctype=json&version=1.1&q=" + msg);
// try {
// HttpResponse httpResponse = httpClient.execute(httpGet);
// String result = EntityUtils.toString(httpResponse.getEntity());
// Log.i("Res===", result);
// return result;
// } catch (IOException e) {
// e.printStackTrace();
// }
return result;
}
}
Http处理Http请求并返回JSON
public class Http {
public Object get(String url, List<NameValuePair> pairs,Class clzz) throws Exception {
String json;
// AppOption appOption = new AppOption();
String host="http://fanyi.youdao.com/";
HttpClient client = new DefaultHttpClient();
client.getParams().setParameter("http.socket.timeout",3000);
client.getParams().setParameter("http.connection.timeout",3000);
client.getParams().setParameter("http.connection-manager.timeout", 60 * 60L);
String param= URLEncodedUtils.format(pairs, "UTF-8");
HttpGet httpget = new HttpGet(host + url+"?"+param);
httpget.setHeader("User-Agent", "boilingClient Of Android");
httpget.setHeader("userId", "rongguang");
try {
Log.i("d======",host + url+"?"+param);
HttpResponse httpResponse = client.execute(httpget);
json = EntityUtils.toString(httpResponse.getEntity());
System.out.println(">>$"+httpget.getURI());
} catch (IOException e) {
throw new Exception(e);
}
return JSON.parseObject(json,clzz);
}
}
数据实体
public class Trans {
private int errorCode;
private String[] translation;
private ArrayList<Web> web;
private String query;
public int getErrorCode() {
return errorCode;
}
public void setErrorCode(int errorCode) {
this.errorCode = errorCode;
}
public String[] getTranslation() {
return translation;
}
public void setTranslation(String[] translation) {
this.translation = translation;
}
public ArrayList<Web> getWeb() {
return web;
}
public void setWeb(ArrayList<Web> web) {
this.web = web;
}
public String getQuery() {
return query;
}
public void setQuery(String query) {
this.query = query;
}
}
public class Web {
private String key;
private String value;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
格式化Web对象为List<String>
public class ManWeb {
public List<String> parseWeb(ArrayList<Web>webs){
List<String> list = new ArrayList<String>();
for(Web web:webs){
list.add(web.getKey()+":"+web.getValue());
}
return list;
}
}
MainActivity把格式化后的Web放入到ListView中
trans_list.setAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,new ManWeb().parseWeb(trans.getWeb())));
在按钮监听方法中加入网络状态的判断,如果网络连接不可用进行提示,提高用户体验度
int netState=RongUtils.getAPNType(MainActivity.this);
if(netState!=-1) {
Message childMsg = mChildHandler.obtainMessage();
childMsg.obj = goods.getText().toString().trim();
mChildHandler.sendMessage(childMsg);
}else {
Toast.makeText(MainActivity.this,"网络连接不可用,请检查网络!",Toast.LENGTH_SHORT).show();
}
判断网络状态的类RongUtils
public class RongUtils {
/**
* 获取当前的网络状态 -1:没有网络 1:WIFI网络2:wap网络3:net网络
*/
public static int getAPNType(Context context){
int netType = -1;
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if(networkInfo==null){
return netType;
}
int nType = networkInfo.getType();
if(nType==ConnectivityManager.TYPE_MOBILE){
if(networkInfo.getExtraInfo().toLowerCase().equals("cmnet")){
netType = 3;
}
else{
netType = 2;
}
}
else if(nType==ConnectivityManager.TYPE_WIFI){
netType = 1;
}
return netType;
}
}
FastJson之有道翻译的更多相关文章
- java实现有道翻译爬虫
我的博文地址 https://www.cnblogs.com/lingdurebing/p/11618902.html 使用的库 1.commons-codec 主要是为了加密,可以直接用java原生 ...
- 添加了有道生词本的 chrome google翻译扩展和有道翻译扩展
在chrome发布项目,需要先花美金认证,还得要美国ID,无奈. 直接上源码,需手动导入. 原始项目源码并未开源,个人是从chrome本地文件里拿出来的,拓展来的,侵删(本来想着自已写一个,业余时间, ...
- 桌面每日一句--桌面翻译工具(有道翻译,微软翻译,Google翻译)
现在的翻译软件功能越来越多,也越来越臃肿,还不时弹广告,真的很烦恼. 鉴于这种情况,自己做了个翻译软件,能满足日常需求就好了.需要用的时候可以直接在桌面输入单词翻译,或者直接使用快捷键呼出翻译窗口.最 ...
- Python 实现有道翻译命令行版
一.个人需求 由于一直用Linux系统,对于词典的支持特别不好,对于我这英语渣渣的人来说,当看英文文档就一直卡壳,之前用惯了有道词典,感觉很不错,虽然有网页版的但是对于全站英文的网页来说并不支持.索性 ...
- 使用python在SAE上搭建一个微信应用,使用有道翻译的api进行在线翻译
1. 准备,先在使用python一步一步搭建微信公众平台(一)中基本实现自动回复的功能后,接着在有道词典上申请一个key,http://fanyi.youdao.com/openapi?path=da ...
- [Python] 使用有道翻译API
Python 使用youdao (有道翻译)API 想写一个给自己记录背单词状况的软件,需要获取英文单词的中文释义(基本功能).考虑使用有道翻译的API实现获取英文单词的中文释义的方法. 获取API_ ...
- 记微信开发(有道翻译api)
记微信开发(有道翻译api) 记微信开发(有道翻译api) 效果: 有道翻译api申请: 地址:http://fanyi.youdao.com/openapi code: <?php/** * ...
- 有道翻译API
轻奢侈品_百度百科 轻奢侈品 有道翻译API 有道翻译API申请成功 API key:72763558 keyfrom:lexus-studio
- Requests抓取有道翻译结果
Requests比urllib更加方便,抓取有道翻译非常的简单. import requests class YouDao(): def __init__(self,parm): ...
随机推荐
- iOS prototype Cells
在storyboard这方面用到的很少,cell也没有用到.上个周五,汤老师快下班的时候说:你看,我的界面已经搭建完成了.而我这边还没有头绪.现在想把需求模拟一下,结果流程没有弄完,自己在这搭起界面来 ...
- c#网页爬虫初探
一个简单的网页爬虫例子! html代码: <head runat="server"> <title>c#爬网</title> </head ...
- 细聊分布式ID生成方法
细聊分布式ID生成方法 https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=403837240&idx=1&sn=ae9 ...
- [BS-23] AFN网络请求上拉/下拉刷新的细节问题总结
上拉/下拉刷新的细节问题总结 1.如果导航栏有透明色,则也需要设置header自动改变透明度 self.tableView.mj_header.automaticallyChangeAlpha = Y ...
- [BS-17] iOS开发-Alpha,Hidden和Opaque区别
iOS开发-Alpha,Hidden和Opaque区别 UIView控件都有Alpha,Hidden和Opaque这三个常见属性,UIView控件BackgroundColor是用RGBA表示的, ...
- hadoop NameNode 手动HA
官网配置地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWit ...
- jquery .on的使用
1.7版本以上,开始使用.on绑定时间 给jquery动态产生的元素绑定事件不能使用普通的$("#fff").click(function(){alert("ok&quo ...
- hibernate中@Entity和@Table的区别
Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库.这些普通Java对象被称作Entity Bean.除了是用Java Persis ...
- mysql在线改表结构 pt-online-schema-change
https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html 不锁表更改数据库表结构 pt-online-s ...
- C#资源文件和C#枚举如何结合使用?
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来.我们都知道计算机技术发展日新月异,速度惊人的快,你我稍不留神,就会被慢慢淘汰!因此:每日不间断的学习是避免被 ...