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. }  

 


本文转自 llb988 51CTO博客,原文链接:http://blog.51cto.com/llb988/512847,如需转载请自行联系原作者

相关文章
|
2月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
33 1
|
2月前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异:从代码到用户体验
【10月更文挑战第5天】在移动应用开发的广阔天地中,安卓和iOS两大平台各占半壁江山。它们在技术架构、开发环境及用户体验上有着根本的不同。本文通过比较这两种平台的开发过程,揭示背后的设计理念和技术选择如何影响最终产品。我们将深入探讨各自平台的代码示例,理解开发者面临的挑战,以及这些差异如何塑造用户的日常体验。
|
3月前
|
存储 Java Android开发
🔥Android开发大神揭秘:从菜鸟到高手,你的代码为何总是慢人一步?💻
在Android开发中,每位开发者都渴望应用响应迅速、体验流畅。然而,代码执行缓慢却是常见问题。本文将跟随一位大神的脚步,剖析三大典型案例:主线程阻塞导致卡顿、内存泄漏引发性能下降及不合理布局引起的渲染问题,并提供优化方案。通过学习这些技巧,你将能够显著提升应用性能,从新手蜕变为高手。
36 2
|
4月前
|
JSON JavaScript 前端开发
Android调用Vue中的JavaScript代码
Android调用Vue中的JavaScript代码
50 3
|
4月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
很多文章都介绍了FTPClient如何连接ftp服务器,但却很少有人说如何连接一台开了SSL认证的ftp服务器,现在代码来了。
116 2
|
5月前
|
存储 Java Android开发
🔥Android开发大神揭秘:从菜鸟到高手,你的代码为何总是慢人一步?💻
【7月更文挑战第28天】在Android开发中,每位开发者都追求极致的用户体验。然而,“代码执行慢”的问题时常困扰着开发者。通过案例分析,我们可探索从新手到高手的成长路径。
43 3
|
4月前
|
Java Android开发
Android项目架构设计问题之要提升代码的可读性和管理性如何解决
Android项目架构设计问题之要提升代码的可读性和管理性如何解决
45 0
|
5月前
|
API Android开发
Android 监听Notification 被清除实例代码
Android 监听Notification 被清除实例代码
|
6月前
|
JavaScript 前端开发 Android开发
kotlin安卓在Jetpack Compose 框架下使用webview , 网页中的JavaScript代码如何与native交互
在Jetpack Compose中使用Kotlin创建Webview组件,设置JavaScript交互:`@Composable`函数`ComposableWebView`加载网页并启用JavaScript。通过`addJavascriptInterface`添加`WebAppInterface`类,允许JavaScript调用Android方法如播放音频。当页面加载完成时,执行`onWebViewReady`回调。
|
7月前
|
移动开发 监控 Android开发
构建高效Android应用:从内存优化到电池寿命代码之美:从功能实现到艺术创作
【5月更文挑战第28天】 在移动开发领域,特别是针对Android系统,性能优化始终是关键议题之一。本文深入探讨了如何通过细致的内存管理和电池使用策略,提升Android应用的运行效率和用户体验。文章不仅涵盖了现代Android设备上常见的内存泄漏问题,还提出了有效的解决方案,包括代码级优化和使用工具进行诊断。同时,文中也详细阐述了如何通过减少不必要的后台服务、合理管理设备唤醒锁以及优化网络调用等手段延长应用的电池续航时间。这些方法和技术旨在帮助开发者构建更加健壮、高效的Android应用程序。