在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之有道翻译的更多相关文章

  1. java实现有道翻译爬虫

    我的博文地址 https://www.cnblogs.com/lingdurebing/p/11618902.html 使用的库 1.commons-codec 主要是为了加密,可以直接用java原生 ...

  2. 添加了有道生词本的 chrome google翻译扩展和有道翻译扩展

    在chrome发布项目,需要先花美金认证,还得要美国ID,无奈. 直接上源码,需手动导入. 原始项目源码并未开源,个人是从chrome本地文件里拿出来的,拓展来的,侵删(本来想着自已写一个,业余时间, ...

  3. 桌面每日一句--桌面翻译工具(有道翻译,微软翻译,Google翻译)

    现在的翻译软件功能越来越多,也越来越臃肿,还不时弹广告,真的很烦恼. 鉴于这种情况,自己做了个翻译软件,能满足日常需求就好了.需要用的时候可以直接在桌面输入单词翻译,或者直接使用快捷键呼出翻译窗口.最 ...

  4. Python 实现有道翻译命令行版

    一.个人需求 由于一直用Linux系统,对于词典的支持特别不好,对于我这英语渣渣的人来说,当看英文文档就一直卡壳,之前用惯了有道词典,感觉很不错,虽然有网页版的但是对于全站英文的网页来说并不支持.索性 ...

  5. 使用python在SAE上搭建一个微信应用,使用有道翻译的api进行在线翻译

    1. 准备,先在使用python一步一步搭建微信公众平台(一)中基本实现自动回复的功能后,接着在有道词典上申请一个key,http://fanyi.youdao.com/openapi?path=da ...

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

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

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

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

  8. 有道翻译API

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

  9. Requests抓取有道翻译结果

    Requests比urllib更加方便,抓取有道翻译非常的简单. import requests class YouDao():     def __init__(self,parm):        ...

随机推荐

  1. vb 修改数据库

    Dim rscode As New ADODB.Recordset ................... Set RsCode = zwpub.DataMdb.DbConnect.Execute(& ...

  2. 二代身份证阅读器(XZX)

    问题一 解决方法: 通常我把所有的dll复制到system32文件夹,64位系统复制到sysWOW64文件夹,而且编译选项CPU要选择X86 问题二 解决方法: 图片路径默认是C:\,对C:\没有写的 ...

  3. 借助fastjson 实体对象转map

    private Map<String, Object> object2Map(Object object){ JSONObject jsonObject = (JSONObject) JS ...

  4. Eclipse中添加Android系统jar包

    这样做的好处是,可以使用Eclipse开发系统应用了,这样可以调用系统中才使用的API. 1.首先在项目中右击->属性.如图所示依次操作 2.添加User Library 3.第一次要新建Use ...

  5. SVG 参考手册

    1. SVG元素模块 Animation.Module animate animateColor animateTransform animateMotion set mpath 剪裁模块 clipP ...

  6. Oracle表名、列名、约束名的长度限制

    Oracle数据库版本11.2.0.1.0 Oracle表名.列名.约束名的长度限制 1.查询用户所有的表 select * from USER_TABLES; 2.查询用户所有表的列 select ...

  7. C# 模拟并发

    每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客! 当然,题外话说多了,咱进入正题! 在处理大数据的时候,经常会发生并发,并发的情况发生后,会出现数据污读,从而产生脏数据. 首 ...

  8. linux:问题

    1>.Xshell远程连接linux闲置时间过长会自动中断连接: 2>.在linux环境下乱码: 3>.在linux下面执行mv /bin/ls /root/bin之后执行ls就不能 ...

  9. hdu(1171)多重背包

    hdu(1171) Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  10. 入门训练 A+B问题

    http://lx.lanqiao.org/problemset.page?code=BEGIN-&userid=34549   入门训练 A+B问题   时间限制:1.0s   内存限制:2 ...