zoukankan      html  css  js  c++  java
  • 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");
    		}
    		
    		
    	}
    }
    
  • 相关阅读:
    547. Friend Circles
    399. Evaluate Division
    684. Redundant Connection
    327. Count of Range Sum
    LeetCode 130 被围绕的区域
    LeetCode 696 计数二进制子串
    LeetCode 116 填充每个节点的下一个右侧节点
    LeetCode 101 对称二叉树
    LeetCode 111 二叉树最小深度
    LeetCode 59 螺旋矩阵II
  • 原文地址:https://www.cnblogs.com/zhwl/p/2145282.html
Copyright © 2011-2022 走看看