• android实用代码 (转)


    今天晚上写了测试类,虽然说达不到什么效果。但是能给大家一些实用的代码。

    让我看看代码的:

    package com.smart.net.utils;
    
    import java.io.ByteArrayOutputStream;
    import java.io.DataOutputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.util.Map;
    
    
    public class NetTool {
    	
    	/**
    	 * byte[] data=param.getBytes(); 以后要注意,发送数据接收数据,都要用字节数组去接收它
    	 * 
    	 * 
    	 * Content-Type 指action entype="multipart/x-"
    	 * */
    	public static InputStream sendPostRequest(String uriPath,
    			Map<String, String> params, String encoding) throws Exception {
    		// String param="id=67&name"+URLEncoder.encode("老梁","UTF-8");//要发送的数据
    		StringBuilder sb = new StringBuilder();
    		// 进行封装
    		for (Map.Entry<String, String> entry : params.entrySet()) {
    			sb.append(entry.getKey()).append("=")
    					.append(URLEncoder.encode(entry.getValue(), encoding));
    			sb.append('&');
    
    		}
    
    		sb.deleteCharAt(sb.length() - 1);
    
    		byte[] data = sb.toString().getBytes();
    		URL url = new URL(uriPath);
    		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    		conn.setConnectTimeout(6 * 1000);
    		conn.setDoOutput(true);// 发送POST至服务器
    		conn.setUseCaches(false);
    		conn.setRequestMethod("POST");
    		conn.setRequestProperty("Connection", "Keep-Alive");
    		conn.setRequestProperty("Charset", "UTF-8");
    		conn.setRequestProperty("Content-Length", String.valueOf(data.length));
    		conn.setRequestProperty("Content-Type",
    				"application/x-www-form-urlencoded");
    		DataOutputStream dataOutStream = new DataOutputStream(
    				conn.getOutputStream());// 得到输出流
    		dataOutStream.write(data);
    		dataOutStream.flush();
    		dataOutStream.close();
    
    		System.out.println(conn.getResponseCode());
    
    		if (conn.getResponseCode() == 200) {
    			return conn.getInputStream();
    		}
    		return null;
    	}
    	
    	
    	/**
    	 * 
    	 * 
    	 * */
    	
    	public static String getTextContent(InputStream inStream,String encoding) throws Exception {
    			byte[] data=readStream(inStream);
    			return new String(data,encoding);
    	
    	}
    	/**
    	 * 获取URL路径指定的内容
    	 * 
    	 * 
    	 * 获得指定内容
    	 * */
    	
    	public static String getTextContent2(String path,String encoding) throws Exception {
    		URL url = new URL(path);
    		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    		conn.setRequestMethod("GET");
    		conn.setConnectTimeout(6 * 1000);
    		// 别超过10秒。
    		System.out.println(conn.getResponseCode());
    		if(conn.getResponseCode()==200){
    			InputStream inputStream=conn.getInputStream();
    			byte[] data=readStream(inputStream);
    			return new String(data,encoding);
    		}
    		return null;
    	}
    	/**
    	 * 直接可以得到文本与流的数据
    	 * */
    	public static InputStream getContent(String uriPath) throws Exception {
    		URL url = new URL(uriPath);
    		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    		conn.setRequestMethod("GET");
    		conn.setConnectTimeout(6 * 1000);
    		// 别超过10秒。
    		System.out.println(conn.getResponseCode());
    		if(conn.getResponseCode()==200){
    			return conn.getInputStream();
    		}
    		return null;
    	}
    	
    //	/**
    //	 * 直接可以得到文本与流的数据
    //	 * */
    	public static InputStream getContentImputStream(String path,String encoding) throws Exception {
    		URL url = new URL(path);
    		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    		conn.setRequestMethod("GET");
    		conn.setConnectTimeout(6 * 1000);
    		// 别超过10秒。
    		System.out.println(conn.getResponseCode());
    		if(conn.getResponseCode()==200){
    			return conn.getInputStream();
    		}
    		return null;
    	}
    /**
     * 获取指定路径,的数据。
     * 
     * **/
    	public static byte[] getImage(String urlpath) throws Exception {
    		URL url = new URL(urlpath);
    		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    		conn.setRequestMethod("GET");
    		conn.setConnectTimeout(6 * 1000);
    		// 别超过10秒。
    		if(conn.getResponseCode()==200){
    			InputStream inputStream=conn.getInputStream();
    			return readStream(inputStream);
    		}
    		return null;
    	}
    	
    	/**
    	 * 读取数据 
    	 * 输入流
    	 * 
    	 * */
    	public static byte[] readStream(InputStream inStream) throws Exception {
    		ByteArrayOutputStream outstream=new ByteArrayOutputStream();
    		byte[] buffer=new byte[1024];
    		int len=-1;
    		while((len=inStream.read(buffer)) !=-1){
    			outstream.write(buffer, 0, len);
    		}
    		outstream.close();
    		inStream.close();
    		
    	return outstream.toByteArray();
    }
    	
    
    	
    	
    }
    package com.smart.activity;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    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 android.test.AndroidTestCase;
    import android.util.Log;
    
    import com.smart.net.utils.FormFile;
    import com.smart.net.utils.HttpRequester;
    import com.smart.net.utils.NetTool;
    
    /**
     * 如何使用大数据发送
     * */
    public class PostParamTest extends AndroidTestCase {
    	
    	
    	/***
    	 * 本代码报错,原因为数据类型不对,18 向Internet上传文件-1.avi  38:38分
    	 * 
    	 * 
    	 * */
    	private final String TAG = "PostParamTest";
    /***
     * 上专文件,
     * 要有四部份数据
     * 名称
     * 内容类型
     * 表单字段名称
     * 类型
     * 发送文件及文本请求参数
     * 
     * 面试上专100M
     * 文件读成数组,然后写上传上去
     *上传到网络流里面去, 
     * */
    	
    	//发送文件及文本请求参数
    	public void testSendPostFileparams() throws Exception{
    		Map<String,String> params=new HashMap<String,String>();
    		params.put("method", "save");
    		params.put("id", "988");
    		params.put("name", "老梁");
    		FileInputStream inStream=new FileInputStream(new File("/sdcard/smart.xml"));
    //		byte[] data=NetTool.readStream(inStream);
    //		inStream.close();
    		FormFile file=new FormFile("smart.xml",inStream,"file","test/xml");
    		
    		//这行代码出现报错
    //		HttpRequester.post("www.baidu.com",params,file);
    		
    		
    //		HttpRequester.post("", params, null);
    	}
    
    	/**
    	 * 利用
    	 * (资源包)httpcomponents-asyncclient-4.0根据包下面的内容显示,
    	 * pairms.add(new BasicNameValuePair("id", "988"));//服务器端
    		pairms.add(new BasicNameValuePair("name", "老梁"));
    		pairms.add(new BasicNameValuePair("method", "save"));
    	 * 两种做方法
    	 * */
    	
    	//通过HhttpClien发送Post请求
    	public void testSendPostParamFromHttpClient() throws Exception {
    		HttpPost httpPost = new HttpPost("");//请求参数,指服务器地址。
    		List<NameValuePair> pairms = new ArrayList<NameValuePair>();//参娄
    		pairms.add(new BasicNameValuePair("id", "988"));//服务器端
    		pairms.add(new BasicNameValuePair("name", "老梁"));
    		pairms.add(new BasicNameValuePair("method", "save"));
    		//代表数据部分
    		httpPost.setEntity(new UrlEncodedFormEntity(pairms, HTTP.UTF_8));
    		DefaultHttpClient httpclient = new DefaultHttpClient();
    		HttpResponse response = httpclient.execute(httpPost);
    		response.getEntity().getContent();
    		// Log.i(TAG, result);
    	}
    
    	// 读取服务器信息
    //自定义发送Post请求
    	public void testSendPostParam() throws Exception {
    		// 这里放的服务器地址,我们可以把JAVA写的项目眼布起来,一样都可以使用。
    
    		String path = "http:www.baidu.com";
    		Map<String, String> params = new HashMap<String, String>();
    		params.put("methos", "save");
    		params.put("id", "29832");
    		params.put("name", "老梁");
    		String result = NetTool.getTextContent(NetTool.sendPostRequest(path,params,"UTF-8"), "UTF-8");
    		Log.i(TAG, result);
    	}
    }
    package com.smart.activity;
    
    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStreamWriter;
    
    import android.os.Environment;
    import android.test.AndroidTestCase;
    import android.util.Log;
    
    import com.smart.domain.Resource;
    import com.smart.net.utils.NetTool;
    import com.smart.net.utils.SAXResourceService;
    
    public class GetXMLTest extends AndroidTestCase {
    	private static final String TAG = "GetXMLTest";
    
    	public void testGetXML() throws Exception {
    		// 如果参数是中文,必须进行Url编码
    		String path = "http://211.143.108.6/wap/ResCatService?act=pic&s=h";
    //		String xml = NetTool.getTextContent(NetTool.getContent(path), "UTF-8");
    		String xml = NetTool.getTextContent2(path, "UTF-8");
    		FileOutputStream outStream=new FileOutputStream(new File(Environment.getExternalStorageDirectory(),"test.xml"));
    		OutputStreamWriter writer=new OutputStreamWriter(outStream,"UTF-8");
    		writer.write(xml);
    		writer.flush();//一定写进这个方法,要不然,写到内容里面就会没有写入文本
    		outStream.close();
    //		Log.i(TAG, xml);
    
    		
    	}
    	
    	//这种性能会差一点
    	public void testGetXMLAndParser() throws Exception {
    		// 如果参数是中文,必须进行URI编码
    		String path = "http://211.143.108.6/wap/ResCatService?act=pic&s=h";
    		String xml = NetTool.getTextContent(NetTool.getContent(path), "UTF-8");
    		InputStream inStream=new ByteArrayInputStream(xml.getBytes());
    		Resource resource=SAXResourceService.readXml(inStream);
    		Log.i(TAG, resource.toString());//打印出来XML文件的资源
    		
    	}
    	/**
    	 * 
    	 * 
    	 * */
    //	public void testGetXMLAndParset() throws Exception{
    //		String path="";
    //		String xml=Net
    //	}
    	
    	//这种调用方法效果相对来讲会好一点
    	public void testGetXMLAndParser2() throws Exception {
    		// 如果参数是中文,必须进行URI编码
    		String path = "http://211.143.108.6/wap/ResCatService?act=pic&s=h";
    		InputStream inStream = NetTool.getContent(path);//
    //		InputStream inStream=new ByteArrayInputStream(xml.getBytes());
    		if(inStream!=null){
    			Resource resource=SAXResourceService.readXml(inStream);
    			Log.i(TAG, resource.toString());//打印出来XML文件的资源
    		}else{
    			Log.i(TAG, "----------->ERROR");
    		}
    		
    		
    	}
    }
    
  • 相关阅读:
    Mybaits的10种通用的写法
    你清楚这几个Spring常用注解吗?
    面试时如何介绍自己
    Spring加载加密的配置文件
    MySQL主从复制
    CentOS7安装和配置MySQL
    Druid监控页面配置与使用
    Shiro配置URL过滤
    基于注解的Dubbo服务配置
    Java中常用的加密算法小结
  • 原文地址:https://www.cnblogs.com/zhwl/p/2145282.html
Copyright © 2020-2023  润新知