• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
浅时光
我喜欢,驾驭着代码在风驰电掣中创造完美!我喜欢,操纵着代码在随必所欲中体验生活!我喜欢,书写着代码在时代浪潮中完成经典!每一段新的代码在我手中诞生对我来说就象观看刹那花开的感动!
博客园    首页    新随笔    联系   管理    订阅  订阅

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;
    }
}

 

posted @ 2015-09-18 14:46  浅时光  阅读(260)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3