码迷,mamicode.com
首页 > 其他好文 > 详细

调用有道词典查词

时间:2015-07-04 12:33:02      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:

  1 主界面设计

 1 http://fanyi.youdao.com/openapi.do?keyfrom=<keyfrom>&key=<key>&type=data&doctype=xml&version=1.1&q=这里是有道翻译API  
 2 <?xml version="1.0" encoding="UTF-8"?>  
 3 <youdao-fanyi>  
 4     <errorCode>0</errorCode>  
 5     <!-- 有道翻译 -->  
 6     <query><![CDATA[这里是有道翻译API]]></query>  
 7     <translation>  
 8         <paragraph><![CDATA[Here is the youdao translation API]]></paragraph>  
 9     </translation>  
10 </youdao-fanyi>  

2具体实现

<font size="3" color="#000000" face="微软雅黑">package xiaosi.youdao;  
  
import org.apache.http.HttpResponse;  
import org.apache.http.client.methods.HttpGet;  
import org.apache.http.impl.client.DefaultHttpClient;  
import org.apache.http.util.EntityUtils;  
import org.json.JSONArray;  
import org.json.JSONObject;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
import android.widget.EditText;  
import android.widget.TextView;  
import android.widget.Toast;  
  
public class YoudaoActivity extends Activity  
{  
    private EditText    edit                = null;  
    private Button      search              = null;  
    private TextView    text                = null;  
    private String      YouDaoBaseUrl       = "http://fanyi.youdao.com/openapi.do";  
    private String      YouDaoKeyFrom       = "MyLifes";  
    private String      YouDaoKey           = "你申请的API Key";  
    private String      YouDaoType          = "data";  
    private String      YouDaoDoctype       = "json";  
    private String      YouDaoVersion       = "1.1";  
    @Override  
    public void onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        init();  
    }  
  
    private void init()  
    {  
        edit = (EditText) findViewById(R.id.edit);  
        search = (Button) findViewById(R.id.search);  
        search.setOnClickListener(new searchListener());  
        text = (TextView) findViewById(R.id.text);  
    }  
  
    private class searchListener implements OnClickListener  
    {  
        @Override  
        public void onClick(View v)  
        {  
            String YouDaoSearchContent = edit.getText().toString().trim();  
            String YouDaoUrl = YouDaoBaseUrl+"?keyfrom=" + YouDaoKeyFrom + "&key=" + YouDaoKey + "&type=" + YouDaoType + "&doctype="  
                    + YouDaoDoctype + "&type=" + YouDaoType + "&version=" + YouDaoVersion + "&q=" + YouDaoSearchContent;  
            try  
            {  
                AnalyzingOfJson(YouDaoUrl);  
            }  
            catch (Exception e)  
            {  
                e.printStackTrace();  
            }  
        }  
    }  
  
    private void AnalyzingOfJson(String url) throws Exception  
    {  
        // 第一步,创建HttpGet对象  
        HttpGet httpGet = new HttpGet(url);  
        // 第二步,使用execute方法发送HTTP GET请求,并返回HttpResponse对象  
        HttpResponse httpResponse = new DefaultHttpClient().execute(httpGet);  
        if (httpResponse.getStatusLine().getStatusCode() == 200)  
        {  
            // 第三步,使用getEntity方法活得返回结果  
            String result = EntityUtils.toString(httpResponse.getEntity());  
            System.out.println("result:" + result);  
            JSONArray jsonArray = new JSONArray("[" + result + "]");  
            String message = null;  
            for (int i = 0; i < jsonArray.length(); i++)  
            {  
                JSONObject jsonObject = jsonArray.getJSONObject(i);  
                if (jsonObject != null)  
                {  
                    String errorCode = jsonObject.getString("errorCode");  
                    if (errorCode.equals("20"))  
                    {  
                        Toast.makeText(getApplicationContext(), "要翻译的文本过长", Toast.LENGTH_SHORT);  
                    }  
                    else if (errorCode.equals("30 "))  
                    {  
                        Toast.makeText(getApplicationContext(), "无法进行有效的翻译", Toast.LENGTH_SHORT);  
                    }  
                    else if (errorCode.equals("40"))  
                    {  
                        Toast.makeText(getApplicationContext(), "不支持的语言类型", Toast.LENGTH_SHORT);  
                    }  
                    else if (errorCode.equals("50"))  
                    {  
                        Toast.makeText(getApplicationContext(), "无效的key", Toast.LENGTH_SHORT);  
                    }  
                    else  
                    {  
                        // 要翻译的内容  
                        String query = jsonObject.getString("query");  
                        message = query;  
                        // 翻译内容  
                        String translation = jsonObject.getString("translation");  
                        message += "\t" + translation;  
                        // 有道词典-基本词典  
                        if (jsonObject.has("basic"))  
                        {  
                            JSONObject basic = jsonObject.getJSONObject("basic");  
                            if (basic.has("phonetic"))  
                            {  
                                String phonetic = basic.getString("phonetic");  
                                message += "\n\t" + phonetic;  
                            }  
                            if (basic.has("phonetic"))  
                            {  
                                String explains = basic.getString("explains");  
                                message += "\n\t" + explains;  
                            }  
                        }  
                        // 有道词典-网络释义  
                        if (jsonObject.has("web"))  
                        {  
                            String web = jsonObject.getString("web");  
                            JSONArray webString = new JSONArray("[" + web + "]");  
                            message += "\n网络释义:";  
                            JSONArray webArray = webString.getJSONArray(0);  
                            int count = 0;  
                            while(!webArray.isNull(count)){  
                                 
                                if (webArray.getJSONObject(count).has("key"))  
                                {  
                                    String key = webArray.getJSONObject(count).getString("key");  
                                    message += "\n\t<"+(count+1)+">" + key;  
                                }  
                                if (webArray.getJSONObject(count).has("value"))  
                                {  
                                    String value = webArray.getJSONObject(count).getString("value");  
                                    message += "\n\t   " + value;  
                                }  
                                count++;  
                            }  
                        }  
                    }  
                }  
            }  
            text.setText(message);  
        }  
        else  
        {  
            Toast.makeText(getApplicationContext(), "提取异常", Toast.LENGTH_SHORT);  
        }  
    }  
}  </font>

 

调用有道词典查词

标签:

原文地址:http://www.cnblogs.com/lzk101816/p/4620429.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!