android get post提交与获取数据
package com.example.service;
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 org.json.JSONArray; import org.json.JSONObject;
import com.example.info.UserInfo;
public class MsgService { public static ArrayList<HashMap<String,String>> getpinglungbyID(String path) throws Exception { URL url=new URL(path); HttpURLConnection conn =(HttpURLConnection)url.openConnection(); conn.setConnectTimeout(2000); conn.setRequestMethod("GET"); if(conn.getResponseCode()==200) { InputStream inStream=conn.getInputStream(); return parseJSONpinglun(inStream); } return new ArrayList<HashMap<String,String>>(); } public static ArrayList<HashMap<String,String>> getpiblishMsg(String path) throws Exception { URL url=new URL(path); HttpURLConnection conn =(HttpURLConnection)url.openConnection(); conn.setConnectTimeout(2000); conn.setRequestMethod("GET"); if(conn.getResponseCode()==200) { InputStream inStream=conn.getInputStream(); return parseJSONpublish(inStream); } return new ArrayList<HashMap<String,String>>(); } public static boolean sendmsg(String path,HashMap<String,String> hmp,String encode) { try { byte[] data = getRequestData(hmp, encode).toString().getBytes(); URL url=new URL(path); HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection(); httpURLConnection.setConnectTimeout(3000); //设置连接超时时间 httpURLConnection.setDoInput(true); //打开输入流,以便从服务器获取数据 httpURLConnection.setDoOutput(true); //打开输出流,以便向服务器提交数据 httpURLConnection.setRequestMethod("POST"); //设置以Post方式提交数据 httpURLConnection.setUseCaches(false); //使用Post方式不能使用缓存 //设置请求体的类型是文本类型 httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); //设置请求体的长度 httpURLConnection.setRequestProperty("Content-Length", String.valueOf(data.length)); //获得输出流,向服务器写入数据 httpURLConnection.connect(); OutputStream outputStream = httpURLConnection.getOutputStream(); outputStream.write(data); outputStream.flush(); outputStream.close(); int response = httpURLConnection.getResponseCode(); httpURLConnection.disconnect(); if(response == HttpURLConnection.HTTP_OK) { return true; //处理服务器的响应结果 } return false; } catch (Exception e) { System.out.println(e.getMessage()); return false; }
} public static StringBuffer getRequestData(Map<String, String> params, String encode) { StringBuffer stringBuffer = new StringBuffer(); //存储封装好的请求体信息 try { for(Map.Entry<String, String> entry : params.entrySet()) { stringBuffer.append(entry.getKey()) .append("=") .append(URLEncoder.encode(entry.getValue(), encode)) .append("&"); } stringBuffer.deleteCharAt(stringBuffer.length() - 1); //删除最后的一个"&" } catch (Exception e) { e.printStackTrace(); } return stringBuffer; } /*private static List<YXmsg> parseJSON(InputStream inStream) throws Exception{ byte[] data=ImageService.read(inStream); String string=new String(data); JSONArray jsonArray =new JSONArray(string); List<YXmsg> msgs=new ArrayList<YXmsg>(); for(int i=0;i<jsonArray.length();i++) { YXmsg msg=new YXmsg(); JSONObject jsonobject= jsonArray.getJSONObject(i); msg.setUserID(jsonobject.getString("otheruserID")); msg.setContext(jsonobject.getString("context")); msgs.add(msg); } return msgs; }*/ private static ArrayList<HashMap<String,String>> parseJSONpinglun(InputStream inStream) throws Exception{ byte[] data=ImageService.read(inStream); String string=new String(data); JSONArray jsonArray =new JSONArray(string); ArrayList<HashMap<String,String>> msgs=new ArrayList<HashMap<String,String>>(); for(int i=0;i<jsonArray.length();i++) { HashMap<String,String> msg=new HashMap<String,String>(); JSONObject jsonobject= jsonArray.getJSONObject(i); msg.put("userID", jsonobject.getString("userID")); msg.put("content", jsonobject.getString("content")); msg.put("date", jsonobject.getString("date")); msgs.add(msg); } return msgs; } private static ArrayList<HashMap<String,String>> parseJSONpublish(InputStream inStream) throws Exception{ byte[] data=ImageService.read(inStream); String string=new String(data); JSONArray jsonArray =new JSONArray(string); ArrayList<HashMap<String,String>> dateArrayList=new ArrayList<HashMap<String,String>>(); for(int i=0;i<jsonArray.length();i++) { HashMap<String,String> item =new HashMap<String, String>(); JSONObject jsonobject= jsonArray.getJSONObject(i); item.put("userimage", UserInfo.getUserImageID(jsonobject.getString("userID"))); item.put("content", jsonobject.getString("content")); item.put("date", jsonobject.getString("date")); dateArrayList.add(item); } return dateArrayList; }
}