android实用的代码
今天晚上写了测试类,虽然说达不到什么效果。但是能给大家一些实用的代码。 让我看看代码的: packagecom.smart.net.utils; importjava.io.ByteArrayOutputStream; importjava.io.DataOutputStream; importjava.io.File; importjava.io.FileOutputStream; importjava.io.InputStream; importjava.net.HttpURLConnection; importjava.net.URL; importjava.net.URLEncoder; importjava.util.Map; publicclassNetTool{ /** *byte[]data=param.getBytes();以后要注意,发送数据接收数据,都要用字节数组去接收它 * * *Content-Type指actionentype="multipart/x-" **/ publicstaticInputStreamsendPostRequest(StringuriPath, Map<String,String>params,Stringencoding)throwsException{ //Stringparam="id=67&name"+URLEncoder.encode("老梁","UTF-8");//要发送的数据 StringBuildersb=newStringBuilder(); //进行封装 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(); URLurl=newURL(uriPath); HttpURLConnectionconn=(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"); DataOutputStreamdataOutStream=newDataOutputStream( conn.getOutputStream());//得到输出流 dataOutStream.write(data); dataOutStream.flush(); dataOutStream.close(); System.out.println(conn.getResponseCode()); if(conn.getResponseCode()==200){ returnconn.getInputStream(); } returnnull; } /** * * **/ publicstaticStringgetTextContent(InputStreaminStream,Stringencoding)throwsException{ byte[]data=readStream(inStream); returnnewString(data,encoding); } /** *获取URL路径指定的内容 * * *获得指定内容 **/ publicstaticStringgetTextContent2(Stringpath,Stringencoding)throwsException{ URLurl=newURL(path); HttpURLConnectionconn=(HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(6*1000); //别超过10秒。 System.out.println(conn.getResponseCode()); if(conn.getResponseCode()==200){ InputStreaminputStream=conn.getInputStream(); byte[]data=readStream(inputStream); returnnewString(data,encoding); } returnnull; } /** *直接可以得到文本与流的数据 **/ publicstaticInputStreamgetContent(StringuriPath)throwsException{ URLurl=newURL(uriPath); HttpURLConnectionconn=(HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(6*1000); //别超过10秒。 System.out.println(conn.getResponseCode()); if(conn.getResponseCode()==200){ returnconn.getInputStream(); } returnnull; } ///** //*直接可以得到文本与流的数据 //**/ publicstaticInputStreamgetContentImputStream(Stringpath,Stringencoding)throwsException{ URLurl=newURL(path); HttpURLConnectionconn=(HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(6*1000); //别超过10秒。 System.out.println(conn.getResponseCode()); if(conn.getResponseCode()==200){ returnconn.getInputStream(); } returnnull; } /** *获取指定路径,的数据。 * ***/ publicstaticbyte[]getImage(Stringurlpath)throwsException{ URLurl=newURL(urlpath); HttpURLConnectionconn=(HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(6*1000); //别超过10秒。 if(conn.getResponseCode()==200){ InputStreaminputStream=conn.getInputStream(); returnreadStream(inputStream); } returnnull; } /** *读取数据 *输入流 * **/ publicstaticbyte[]readStream(InputStreaminStream)throwsException{ ByteArrayOutputStreamoutstream=newByteArrayOutputStream(); byte[]buffer=newbyte[1024]; intlen=-1; while((len=inStream.read(buffer))!=-1){ outstream.write(buffer,0,len); } outstream.close(); inStream.close(); returnoutstream.toByteArray(); } } packagecom.smart.activity; importjava.io.File; importjava.io.FileInputStream; importjava.util.ArrayList; importjava.util.HashMap; importjava.util.List; importjava.util.Map; importorg.apache.http.HttpResponse; importorg.apache.http.NameValuePair; importorg.apache.http.client.entity.UrlEncodedFormEntity; importorg.apache.http.client.methods.HttpPost; importorg.apache.http.impl.client.DefaultHttpClient; importorg.apache.http.message.BasicNameValuePair; importorg.apache.http.protocol.HTTP; importandroid.test.AndroidTestCase; importandroid.util.Log; importcom.smart.net.utils.FormFile; importcom.smart.net.utils.HttpRequester; importcom.smart.net.utils.NetTool; /** *如何使用大数据发送 **/ publicclassPostParamTestextendsAndroidTestCase{ /*** *本代码报错,原因为数据类型不对,18向Internet上传文件-1.avi38:38分 * * **/ privatefinalStringTAG="PostParamTest"; /*** *上专文件, *要有四部份数据 *名称 *内容类型 *表单字段名称 *类型 *发送文件及文本请求参数 * *面试上专100M *文件读成数组,然后写上传上去 *上传到网络流里面去, **/ //发送文件及文本请求参数 publicvoidtestSendPostFileparams()throwsException{ Map<String,String>params=newHashMap<String,String>(); params.put("method","save"); params.put("id","988"); params.put("name","老梁"); FileInputStreaminStream=newFileInputStream(newFile("/sdcard/smart.xml")); //byte[]data=NetTool.readStream(inStream); //inStream.close(); FormFilefile=newFormFile("smart.xml",inStream,"file","test/xml"); //这行代码出现报错 //HttpRequester.post("www.baidu.com",params,file); //HttpRequester.post("",params,null); } /** *利用 *(资源包)httpcomponents-asyncclient-4.0根据包下面的内容显示, *pairms.add(newBasicNameValuePair("id","988"));//服务器端 pairms.add(newBasicNameValuePair("name","老梁")); pairms.add(newBasicNameValuePair("method","save")); *两种做方法 **/ //通过HhttpClien发送Post请求 publicvoidtestSendPostParamFromHttpClient()throwsException{ HttpPosthttpPost=newHttpPost("");//请求参数,指服务器地址。 List<NameValuePair>pairms=newArrayList<NameValuePair>();//参娄 pairms.add(newBasicNameValuePair("id","988"));//服务器端 pairms.add(newBasicNameValuePair("name","老梁")); pairms.add(newBasicNameValuePair("method","save")); //代表数据部分 httpPost.setEntity(newUrlEncodedFormEntity(pairms,HTTP.UTF_8)); DefaultHttpClienthttpclient=newDefaultHttpClient(); HttpResponseresponse=httpclient.execute(httpPost); response.getEntity().getContent(); //Log.i(TAG,result); } //读取服务器信息 //自定义发送Post请求 publicvoidtestSendPostParam()throwsException{ //这里放的服务器地址,我们可以把JAVA写的项目眼布起来,一样都可以使用。 Stringpath="http:www.baidu.com"; Map<String,String>params=newHashMap<String,String>(); params.put("methos","save"); params.put("id","29832"); params.put("name","老梁"); Stringresult=NetTool.getTextContent(NetTool.sendPostRequest(path,params,"UTF-8"),"UTF-8"); Log.i(TAG,result); } } packagecom.smart.activity; importjava.io.ByteArrayInputStream; importjava.io.File; importjava.io.FileOutputStream; importjava.io.InputStream; importjava.io.OutputStreamWriter; importandroid.os.Environment; importandroid.test.AndroidTestCase; importandroid.util.Log; importcom.smart.domain.Resource; importcom.smart.net.utils.NetTool; importcom.smart.net.utils.SAXResourceService; publicclassGetXMLTestextendsAndroidTestCase{ privatestaticfinalStringTAG="GetXMLTest"; publicvoidtestGetXML()throwsException{ //如果参数是中文,必须进行Url编码 Stringpath="http://211.143.108.6/wap/ResCatService?act=pic&s=h"; //Stringxml=NetTool.getTextContent(NetTool.getContent(path),"UTF-8"); Stringxml=NetTool.getTextContent2(path,"UTF-8"); FileOutputStreamoutStream=newFileOutputStream(newFile(Environment.getExternalStorageDirectory(),"test.xml")); OutputStreamWriterwriter=newOutputStreamWriter(outStream,"UTF-8"); writer.write(xml); writer.flush();//一定写进这个方法,要不然,写到内容里面就会没有写入文本 outStream.close(); //Log.i(TAG,xml); } //这种性能会差一点 publicvoidtestGetXMLAndParser()throwsException{ //如果参数是中文,必须进行URI编码 Stringpath="http://211.143.108.6/wap/ResCatService?act=pic&s=h"; Stringxml=NetTool.getTextContent(NetTool.getContent(path),"UTF-8"); InputStreaminStream=newByteArrayInputStream(xml.getBytes()); Resourceresource=SAXResourceService.readXml(inStream); Log.i(TAG,resource.toString());//打印出来XML文件的资源 } /** * * **/ //publicvoidtestGetXMLAndParset()throwsException{ //Stringpath=""; //Stringxml=Net //} //这种调用方法效果相对来讲会好一点 publicvoidtestGetXMLAndParser2()throwsException{ //如果参数是中文,必须进行URI编码 Stringpath="http://211.143.108.6/wap/ResCatService?act=pic&s=h"; InputStreaminStream=NetTool.getContent(path);// //InputStreaminStream=newByteArrayInputStream(xml.getBytes()); if(inStream!=null){ Resourceresource=SAXResourceService.readXml(inStream); Log.i(TAG,resource.toString());//打印出来XML文件的资源 }else{ Log.i(TAG,"----------->ERROR"); } } } 本文转自 llb988 51CTO博客,原文链接:http://blog.51cto.com/llb988/512847,如需转载请自行联系原作者