一个简单的中英文翻译词典学习(类似灵格斯)一

    一种中英文翻译工具灵格斯,原理如下,输入相关的要翻译的字词,到相关网站中查询,将结果在本地显示。手机中实现这个功能,必须用手机访问Web的知识。学习JEE的童鞋明白,许多东西底层使用Apache HttpClient实现功能。如一个XFire底层访问,一些web的服务器底层等,一些常用的应用程序访问web网站等都是用这个组件开发,学习Android的童鞋会发现Android SDK中包含这个组件HttpClient, 但是他的功能没有JEE的HTTPClient的公共强大,但是仍然非常强悍!好了言归正传,开始讲解关于一个简单中英文翻译字典的实现。

 

     Android中实现原理讲解:采用HttpClient或者URLConnection访问得到结果,解析实现而已。至于界面吗?可以自行安排。好了看一下实现效果呗!

 

重点代码如下:

package com.easyway.android.xdict;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
/**
 * 手机访问远程http请求的信息
 * @author longgangbai
 * @date 2010-5-25
 * @version 1.0
 * @since JDK6.0
 */
public class HTTPClient {
	private final static  String DEFAULT_CHARSET="UTF-8";
	/**
	 * 手机远程请求文件信息解析
	 * @param urlPath
	 * @param map
	 * @return
	 */
	public  static String executeByHttpURLConnection(String urlPath,Map<String, String> map){
		String result="";
		InputStream is =null;
		OutputStream os = null;
		try {
			URL url = new URL(urlPath);
			HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
			//设置请求的方式
			httpCon.setRequestMethod("POST");
			//设置输入的信息
			httpCon.setDoInput(true);
			//设置输出信息
			httpCon.setDoOutput(true);
			//设置是否使用缓存
			httpCon.setUseCaches(false);
			//设置请求的参数
			if(map!=null)
			{
				Set<Entry<String,String>>  entryMaps=map.entrySet();
				for (Entry<String, String> entry : entryMaps) {
					httpCon.addRequestProperty(entry.getKey(), entry.getValue());
				}
			}
			httpCon.setRequestProperty("Charset", DEFAULT_CHARSET);
			is = httpCon.getInputStream();
			//os = httpCon.getOutputStream();
			//  使用os发送xml数据,使用is接收服务端返回的数据
		    result=getResponseResult(is);
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			try {
				 is.close();
				 os.close();
			} catch (Exception e) {
			}
		}
		return result;
		
	}
	/**
	 * 获取相应的信息
	 * @param is
	 * @return
	 * @throws IOException
	 */
	public static String getResponseResult(InputStream is ) throws IOException{
		 BufferedReader br = new BufferedReader(new InputStreamReader(is, DEFAULT_CHARSET));
		 String line=null;
		 String result="";
		 while((line=br.readLine())!=null){
			 result+=line;
		 }
		return result;
	}
	
	 /**
	  * 手机访问页面采用apache的访问
	  * @param httpurl
	  * @return
	  */
	 public static String executeHttpClientByApache(String httpurl,Map<String, String> map) {
		 // 构建HttpClient的实例的应用
		 HttpClient httpclient=new DefaultHttpClient();
		 //设置post发送的对象
		 HttpPost httpPost = new HttpPost();
		 //设置各种请求的头部信息和参数
		 List<NameValuePair> params=new ArrayList<NameValuePair>();
		 if(map!=null){
				Set<Entry<String,String>>  entryMaps=map.entrySet();
				for (Entry<String, String> entry : entryMaps) {
					params.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
				}
		 }
		 String result="";
		 try {
			 //设置请求的格式为UTF-8形式
			  httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
			  //获取响应的信息
			  HttpResponse response= httpclient.execute(httpPost);
			  //获取响应的状态
			  int statusCode=response.getStatusLine().getStatusCode();
			  if(statusCode==200){
				  result=EntityUtils.toString(response.getEntity(), DEFAULT_CHARSET);
			  }else{
				  System.out.println("statusCode="+statusCode);
			  }
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	    return result;

	 }
}

 

效果图如下:

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值