android实用的代码

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

让我看看代码的:

 

  
  
  
  
  1. package com.smart.net.utils;  
  2.  
  3. import java.io.ByteArrayOutputStream;  
  4. import java.io.DataOutputStream;  
  5. import java.io.File;  
  6. import java.io.FileOutputStream;  
  7. import java.io.InputStream;  
  8. import java.net.HttpURLConnection;  
  9. import java.net.URL;  
  10. import java.net.URLEncoder;  
  11. import java.util.Map;  
  12.  
  13.  
  14. public class NetTool {  
  15.       
  16.     /**  
  17.      * byte[] data=param.getBytes(); 以后要注意,发送数据接收数据,都要用字节数组去接收它  
  18.      *   
  19.      *   
  20.      * Content-Type 指action entype="multipart/x-"  
  21.      * */ 
  22.     public static InputStream sendPostRequest(String uriPath,  
  23.             Map<String, String> params, String encoding) throws Exception {  
  24.         // String param="id=67&name"+URLEncoder.encode("老梁","UTF-8");//要发送的数据  
  25.         StringBuilder sb = new StringBuilder();  
  26.         // 进行封装  
  27.         for (Map.Entry<String, String> entry : params.entrySet()) {  
  28.             sb.append(entry.getKey()).append("=")  
  29.                     .append(URLEncoder.encode(entry.getValue(), encoding));  
  30.             sb.append('&');  
  31.  
  32.         }  
  33.  
  34.         sb.deleteCharAt(sb.length() - 1);  
  35.  
  36.         byte[] data = sb.toString().getBytes();  
  37.         URL url = new URL(uriPath);  
  38.         HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
  39.         conn.setConnectTimeout(6 * 1000);  
  40.         conn.setDoOutput(true);// 发送POST至服务器  
  41.         conn.setUseCaches(false);  
  42.         conn.setRequestMethod("POST");  
  43.         conn.setRequestProperty("Connection""Keep-Alive");  
  44.         conn.setRequestProperty("Charset""UTF-8");  
  45.         conn.setRequestProperty("Content-Length", String.valueOf(data.length));  
  46.         conn.setRequestProperty("Content-Type",  
  47.                 "application/x-www-form-urlencoded");  
  48.         DataOutputStream dataOutStream = new DataOutputStream(  
  49.                 conn.getOutputStream());// 得到输出流  
  50.         dataOutStream.write(data);  
  51.         dataOutStream.flush();  
  52.         dataOutStream.close();  
  53.  
  54.         System.out.println(conn.getResponseCode());  
  55.  
  56.         if (conn.getResponseCode() == 200) {  
  57.             return conn.getInputStream();  
  58.         }  
  59.         return null;  
  60.     }  
  61.       
  62.       
  63.     /**  
  64.      *   
  65.      *   
  66.      * */ 
  67.       
  68.     public static String getTextContent(InputStream inStream,String encoding) throws Exception {  
  69.             byte[] data=readStream(inStream);  
  70.             return new String(data,encoding);  
  71.       
  72.     }  
  73.     /**  
  74.      * 获取URL路径指定的内容  
  75.      *   
  76.      *   
  77.      * 获得指定内容  
  78.      * */ 
  79.       
  80.     public static String getTextContent2(String path,String encoding) throws Exception {  
  81.         URL url = new URL(path);  
  82.         HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
  83.         conn.setRequestMethod("GET");  
  84.         conn.setConnectTimeout(6 * 1000);  
  85.         // 别超过10秒。  
  86.         System.out.println(conn.getResponseCode());  
  87.         if(conn.getResponseCode()==200){  
  88.             InputStream inputStream=conn.getInputStream();  
  89.             byte[] data=readStream(inputStream);  
  90.             return new String(data,encoding);  
  91.         }  
  92.         return null;  
  93.     }  
  94.     /**  
  95.      * 直接可以得到文本与流的数据  
  96.      * */ 
  97.     public static InputStream getContent(String uriPath) throws Exception {  
  98.         URL url = new URL(uriPath);  
  99.         HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
  100.         conn.setRequestMethod("GET");  
  101.         conn.setConnectTimeout(6 * 1000);  
  102.         // 别超过10秒。  
  103.         System.out.println(conn.getResponseCode());  
  104.         if(conn.getResponseCode()==200){  
  105.             return conn.getInputStream();  
  106.         }  
  107.         return null;  
  108.     }  
  109.       
  110. //  /**  
  111. //   * 直接可以得到文本与流的数据  
  112. //   * */  
  113.     public static InputStream getContentImputStream(String path,String encoding) throws Exception {  
  114.         URL url = new URL(path);  
  115.         HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
  116.         conn.setRequestMethod("GET");  
  117.         conn.setConnectTimeout(6 * 1000);  
  118.         // 别超过10秒。  
  119.         System.out.println(conn.getResponseCode());  
  120.         if(conn.getResponseCode()==200){  
  121.             return conn.getInputStream();  
  122.         }  
  123.         return null;  
  124.     }  
  125. /**  
  126.  * 获取指定路径,的数据。  
  127.  *   
  128.  * **/ 
  129.     public static byte[] getImage(String urlpath) throws Exception {  
  130.         URL url = new URL(urlpath);  
  131.         HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
  132.         conn.setRequestMethod("GET");  
  133.         conn.setConnectTimeout(6 * 1000);  
  134.         // 别超过10秒。  
  135.         if(conn.getResponseCode()==200){  
  136.             InputStream inputStream=conn.getInputStream();  
  137.             return readStream(inputStream);  
  138.         }  
  139.         return null;  
  140.     }  
  141.       
  142.     /**  
  143.      * 读取数据   
  144.      * 输入流  
  145.      *   
  146.      * */ 
  147.     public static byte[] readStream(InputStream inStream) throws Exception {  
  148.         ByteArrayOutputStream outstream=new ByteArrayOutputStream();  
  149.         byte[] buffer=new byte[1024];  
  150.         int len=-1;  
  151.         while((len=inStream.read(buffer)) !=-1){  
  152.             outstream.write(buffer, 0, len);  
  153.         }  
  154.         outstream.close();  
  155.         inStream.close();  
  156.           
  157.     return outstream.toByteArray();  
  158. }  
  159.       
  160.  
  161.       
  162.       
  163. }  
  164. package com.smart.activity;  
  165.  
  166. import java.io.File;  
  167. import java.io.FileInputStream;  
  168. import java.util.ArrayList;  
  169. import java.util.HashMap;  
  170. import java.util.List;  
  171. import java.util.Map;  
  172.  
  173. import org.apache.http.HttpResponse;  
  174. import org.apache.http.NameValuePair;  
  175. import org.apache.http.client.entity.UrlEncodedFormEntity;  
  176. import org.apache.http.client.methods.HttpPost;  
  177. import org.apache.http.impl.client.DefaultHttpClient;  
  178. import org.apache.http.message.BasicNameValuePair;  
  179. import org.apache.http.protocol.HTTP;  
  180.  
  181. import android.test.AndroidTestCase;  
  182. import android.util.Log;  
  183.  
  184. import com.smart.net.utils.FormFile;  
  185. import com.smart.net.utils.HttpRequester;  
  186. import com.smart.net.utils.NetTool;  
  187.  
  188. /**  
  189.  * 如何使用大数据发送  
  190.  * */ 
  191. public class PostParamTest extends AndroidTestCase {  
  192.       
  193.       
  194.     /***  
  195.      * 本代码报错,原因为数据类型不对,18 向Internet上传文件-1.avi  38:38分  
  196.      *   
  197.      *   
  198.      * */ 
  199.     private final String TAG = "PostParamTest";  
  200. /***  
  201.  * 上专文件,  
  202.  * 要有四部份数据  
  203.  * 名称  
  204.  * 内容类型  
  205.  * 表单字段名称  
  206.  * 类型  
  207.  * 发送文件及文本请求参数  
  208.  *   
  209.  * 面试上专100M  
  210.  * 文件读成数组,然后写上传上去  
  211.  *上传到网络流里面去,   
  212.  * */ 
  213.       
  214.     //发送文件及文本请求参数  
  215.     public void testSendPostFileparams() throws Exception{  
  216.         Map<String,String> params=new HashMap<String,String>();  
  217.         params.put("method""save");  
  218.         params.put("id""988");  
  219.         params.put("name""老梁");  
  220.         FileInputStream inStream=new FileInputStream(new File("/sdcard/smart.xml"));  
  221. //      byte[] data=NetTool.readStream(inStream);  
  222. //      inStream.close();  
  223.         FormFile file=new FormFile("smart.xml",inStream,"file","test/xml");  
  224.           
  225.         //这行代码出现报错  
  226. //      HttpRequester.post("www.baidu.com",params,file);  
  227.           
  228.           
  229. //      HttpRequester.post("", params, null);  
  230.     }  
  231.  
  232.     /**  
  233.      * 利用  
  234.      * (资源包)httpcomponents-asyncclient-4.0根据包下面的内容显示,  
  235.      * pairms.add(new BasicNameValuePair("id", "988"));//服务器端  
  236.         pairms.add(new BasicNameValuePair("name", "老梁"));  
  237.         pairms.add(new BasicNameValuePair("method", "save"));  
  238.      * 两种做方法  
  239.      * */ 
  240.       
  241.     //通过HhttpClien发送Post请求  
  242.     public void testSendPostParamFromHttpClient() throws Exception {  
  243.         HttpPost httpPost = new HttpPost("");//请求参数,指服务器地址。  
  244.         List<NameValuePair> pairms = new ArrayList<NameValuePair>();//参娄  
  245.         pairms.add(new BasicNameValuePair("id""988"));//服务器端  
  246.         pairms.add(new BasicNameValuePair("name""老梁"));  
  247.         pairms.add(new BasicNameValuePair("method""save"));  
  248.         //代表数据部分  
  249.         httpPost.setEntity(new UrlEncodedFormEntity(pairms, HTTP.UTF_8));  
  250.         DefaultHttpClient httpclient = new DefaultHttpClient();  
  251.         HttpResponse response = httpclient.execute(httpPost);  
  252.         response.getEntity().getContent();  
  253.         // Log.i(TAG, result);  
  254.     }  
  255.  
  256.     // 读取服务器信息  
  257. //自定义发送Post请求  
  258.     public void testSendPostParam() throws Exception {  
  259.         // 这里放的服务器地址,我们可以把JAVA写的项目眼布起来,一样都可以使用。  
  260.  
  261.         String path = "http:www.baidu.com";  
  262.         Map<String, String> params = new HashMap<String, String>();  
  263.         params.put("methos""save");  
  264.         params.put("id""29832");  
  265.         params.put("name""老梁");  
  266.         String result = NetTool.getTextContent(NetTool.sendPostRequest(path,params,"UTF-8"), "UTF-8");  
  267.         Log.i(TAG, result);  
  268.     }  
  269. }  
  270. package com.smart.activity;  
  271.  
  272. import java.io.ByteArrayInputStream;  
  273. import java.io.File;  
  274. import java.io.FileOutputStream;  
  275. import java.io.InputStream;  
  276. import java.io.OutputStreamWriter;  
  277.  
  278. import android.os.Environment;  
  279. import android.test.AndroidTestCase;  
  280. import android.util.Log;  
  281.  
  282. import com.smart.domain.Resource;  
  283. import com.smart.net.utils.NetTool;  
  284. import com.smart.net.utils.SAXResourceService;  
  285.  
  286. public class GetXMLTest extends AndroidTestCase {  
  287.     private static final String TAG = "GetXMLTest";  
  288.  
  289.     public void testGetXML() throws Exception {  
  290.         // 如果参数是中文,必须进行Url编码  
  291.         String path = "http://211.143.108.6/wap/ResCatService?act=pic&s=h";  
  292. //      String xml = NetTool.getTextContent(NetTool.getContent(path), "UTF-8");  
  293.         String xml = NetTool.getTextContent2(path, "UTF-8");  
  294.         FileOutputStream outStream=new FileOutputStream(new File(Environment.getExternalStorageDirectory(),"test.xml"));  
  295.         OutputStreamWriter writer=new OutputStreamWriter(outStream,"UTF-8");  
  296.         writer.write(xml);  
  297.         writer.flush();//一定写进这个方法,要不然,写到内容里面就会没有写入文本  
  298.         outStream.close();  
  299. //      Log.i(TAG, xml);  
  300.  
  301.           
  302.     }  
  303.       
  304.     //这种性能会差一点  
  305.     public void testGetXMLAndParser() throws Exception {  
  306.         // 如果参数是中文,必须进行URI编码  
  307.         String path = "http://211.143.108.6/wap/ResCatService?act=pic&s=h";  
  308.         String xml = NetTool.getTextContent(NetTool.getContent(path), "UTF-8");  
  309.         InputStream inStream=new ByteArrayInputStream(xml.getBytes());  
  310.         Resource resource=SAXResourceService.readXml(inStream);  
  311.         Log.i(TAG, resource.toString());//打印出来XML文件的资源  
  312.           
  313.     }  
  314.     /**  
  315.      *   
  316.      *   
  317.      * */ 
  318. //  public void testGetXMLAndParset() throws Exception{  
  319. //      String path="";  
  320. //      String xml=Net  
  321. //  }  
  322.       
  323.     //这种调用方法效果相对来讲会好一点  
  324.     public void testGetXMLAndParser2() throws Exception {  
  325.         // 如果参数是中文,必须进行URI编码  
  326.         String path = "http://211.143.108.6/wap/ResCatService?act=pic&s=h";  
  327.         InputStream inStream = NetTool.getContent(path);//  
  328. //      InputStream inStream=new ByteArrayInputStream(xml.getBytes());  
  329.         if(inStream!=null){  
  330.             Resource resource=SAXResourceService.readXml(inStream);  
  331.             Log.i(TAG, resource.toString());//打印出来XML文件的资源  
  332.         }else{  
  333.             Log.i(TAG, "----------->ERROR");  
  334.         }  
  335.           
  336.           
  337.     }  
  338. }  

 

你可能感兴趣的:(android,移动开发,职场,休闲,实用代码)