Struts2+Android (3) 多种方式向服务器发送信息
2012-05-14 22:32
369 查看
还是接上篇
修改了一些VideoManageAction
这次使用TestCase 用的时候加如activity吧
修改了一些VideoManageAction
package com.su.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.su.action.util.StreamTool; public class VideoManageAction extends ActionSupport { private String title; private String timelength; private File myFile; private String myFileFileName; public String getMethod() { return method; } public void setMethod(String method) { this.method = method; } private String method; public File getMyFile() { return myFile; } public void setMyFile(File myFile) { this.myFile = myFile; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getTimelength() { return timelength; } public void setTimelength(String timelength) { this.timelength = timelength; } public void setMyFileFileName(String myFileFileName) { this.myFileFileName = myFileFileName; } public String getMyFileFileName() { return myFileFileName; } public String execute() throws Exception { if (method.equals("getXml")) { InputStream inStream = ServletActionContext.getRequest().getInputStream(); byte[] data = StreamTool.readInputStream(inStream); String xml = new String(data, "UTF-8"); System.out.println("11111111111111111111"); System.out.println(xml); } if (myFile!=null) { InputStream is = new FileInputStream(myFile); String uploadPath = ServletActionContext.getServletContext() .getRealPath("/upload"); File file = new File(uploadPath); if (!file.exists()) { file.mkdir(); } File toFile = new File(uploadPath, this.getMyFileFileName()); OutputStream os = new FileOutputStream(toFile); byte[] buffer = new byte[1024]; int length = 0; while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } is.close(); os.close(); } System.out.println(this.getTimelength()+"\n"+this.getTitle()+"\n"); return SUCCESS; } }
这次使用TestCase 用的时候加如activity吧
package cn.itcast.uploaddata; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import cn.itcast.net.HttpRequest; import android.test.AndroidTestCase; import android.util.Log; public class HttpRequestTest extends AndroidTestCase { private static final String TAG = "HttpRequestTest"; public void testSendXMLRequest() throws Throwable{ String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><persons><person id=\"23\"><name>liming</name><age>30</age></person></persons>"; HttpRequest.sendXML("http://10.1.27.35:8080/VideoWeb2/upload.action?method=getXml", xml); } public void testSendGetRequest() throws Throwable{ //?method=save&title=xxxx&timelength=90 Map<String, String> params = new HashMap<String, String>(); //params.put("method", "save"); params.put("title", "liming"); params.put("timelength", "80"); HttpRequest.sendGetRequest("http://10.1.27.35:8080/VideoWeb2/upload.action", params, "UTF-8"); } public void testSendPostRequest() throws Throwable{ Map<String, String> params = new HashMap<String, String>(); //params.put("method", "save"); params.put("title", "中国"); params.put("timelength", "80"); HttpRequest.sendPostRequest("http://10.1.27.35:8080/VideoWeb2/upload.action", params, "UTF-8"); } public void testSendRequestFromHttpClient() throws Throwable{ Map<String, String> params = new HashMap<String, String>(); //params.put("method", "save"); params.put("title", "传智播客"); params.put("timelength", "80"); boolean result = HttpRequest.sendRequestFromHttpClient("http://10.1.27.35:8080/VideoWeb2/upload.action", params, "UTF-8"); Log.i("HttRequestTest", ""+ result); } }
package cn.itcast.net; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; 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.xmlpull.v1.XmlPullParser; import android.util.Xml; import cn.itcast.utils.StreamTool; public class HttpRequest { public static boolean sendXML(String path, String xml)throws Exception{ byte[] data = xml.getBytes(); URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setConnectTimeout(5 * 1000); conn.setDoOutput(true);//如果通过post提交数据,必须设置允许对外输出数据 conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8"); conn.setRequestProperty("Content-Length", String.valueOf(data.length)); OutputStream outStream = conn.getOutputStream(); outStream.write(data); outStream.flush(); outStream.close(); if(conn.getResponseCode()==200){ return true; } return false; } public static boolean sendGetRequest(String path, Map<String, String> params, String enc) throws Exception{ StringBuilder sb = new StringBuilder(path); sb.append('?'); // ?method=save&title=435435435&timelength=89& for(Map.Entry<String, String> entry : params.entrySet()){ sb.append(entry.getKey()).append('=') .append(URLEncoder.encode(entry.getValue(), enc)).append('&'); } sb.deleteCharAt(sb.length()-1); URL url = new URL(sb.toString()); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5 * 1000); if(conn.getResponseCode()==200){ return true; } return false; } public static boolean sendPostRequest(String path, Map<String, String> params, String enc) throws Exception{ // title=dsfdsf&timelength=23&method=save StringBuilder sb = new StringBuilder(); if(params!=null && !params.isEmpty()){ for(Map.Entry<String, String> entry : params.entrySet()){ sb.append(entry.getKey()).append('=') .append(URLEncoder.encode(entry.getValue(), enc)).append('&'); } sb.deleteCharAt(sb.length()-1); } byte[] entitydata = sb.toString().getBytes();//得到实体的二进制数据 URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setConnectTimeout(5 * 1000); conn.setDoOutput(true);//如果通过post提交数据,必须设置允许对外输出数据 //Content-Type: application/x-www-form-urlencoded //Content-Length: 38 conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestProperty("Content-Length", String.valueOf(entitydata.length)); OutputStream outStream = conn.getOutputStream(); outStream.write(entitydata); outStream.flush(); outStream.close(); if(conn.getResponseCode()==200){ return true; } return false; } //SSL HTTPS Cookie public static boolean sendRequestFromHttpClient(String path, Map<String, String> params, String enc) throws Exception{ List<NameValuePair> paramPairs = new ArrayList<NameValuePair>(); if(params!=null && !params.isEmpty()){ for(Map.Entry<String, String> entry : params.entrySet()){ paramPairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); } } UrlEncodedFormEntity entitydata = new UrlEncodedFormEntity(paramPairs, enc);//得到经过编码过后的实体数据 HttpPost post = new HttpPost(path); //form post.setEntity(entitydata); DefaultHttpClient client = new DefaultHttpClient(); //浏览器 HttpResponse response = client.execute(post);//执行请求 if(response.getStatusLine().getStatusCode()==200){ return true; } return false; } }
![](http://my.csdn.net/uploads/201205/14/1337006155_5508.jpg)
相关文章推荐
- Struts2+Android (3) 多种方式向服务器发送信息
- Struts2+Android 多种方式向服务器发送信息
- android 向服务器Get和Post请求的两种方式,android向服务器发送文件,自己组装协议和借助第三方开源
- Android开发中怎样调用系统Email发送邮件(多种调用方式)
- Android调用WEBSERVER发送信息到服务器
- Android开发中怎样调用系统Email发送邮件(多种调用方式)
- Android捕获错误信息发送至服务器(转载)
- Android发送数据到web服务器4种方式
- Android以后台Service的方式获取GPS数据,并定时发送到服务器
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android 错误信息捕获发送至服务器【原创】
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android开发使用GET方式向服务器请求和发送数据
- Android 应用程序异常信息捕获发送至服务器
- Android开发中怎样调用系统Email发送邮件(多种调用方式)
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- 基于Android 错误信息捕获发送至服务器的详解
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android将程序崩溃信息保存本地文件发送至服务器
- Android 应用程序异常信息捕获发送至服务器