Android发送GET和POST请求DEMO
2013-03-06 16:20
381 查看
4.0后网络访问必须单独起一个子线程访问,否则无法运行,这里有一个发送请求的工具类GetPostUtil
public class GetPostUtil { /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param params * 请求参数,请求参数应该是name1=value1&name2=value2的形式。 * @return URL所代表远程资源的响应 */ public static String sendGet(String url, String params) { String result = ""; BufferedReader in = null; try { String urlName = url + "?" + params; URL realUrl = new URL(urlName); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); // 建立实际的连接 conn.connect(); // 获取所有响应头字段 Map<String, List<String>> map = conn.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += "\n" + line; } } catch (Exception e) { System.out.println("发送GET请求出现异常!" + e); e.printStackTrace(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; } /** * 向指定URL发送POST方法的请求 * * @param url * 发送请求的URL * @param params * 请求参数,请求参数应该是name1=value1&name2=value2的形式。 * @return URL所代表远程资源的响应 */ public static String sendPost(String url, String params) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(params); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += "\n" + line; } } catch (Exception e) { System.out.println("发送POST请求出现异常!" + e); e.printStackTrace(); } // 使用finally块来关闭输出流、输入流 finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; } }Activity类代码
public class GetPostMain extends Activity { Button get , post; EditText show; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); get = (Button) findViewById(R.id.get); post = (Button) findViewById(R.id.post); show = (EditText)findViewById(R.id.show); //利用Handler更新UI final Handler h = new Handler(){ @Override public void handleMessage(Message msg) { if(msg.what==0x123){ show.setText(msg.obj.toString()); } } }; get.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new Thread(new AccessNetwork("GET", "http://192.168.1.88:8080/abc/a.jsp", null, h)).start(); } }); post.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new Thread(new AccessNetwork("POST", "http://192.168.1.88:8080/abc/login.jsp", "name=crazyit.org&pass=leegang", h)).start(); } }); } } class AccessNetwork implements Runnable{ private String op ; private String url; private String params; private Handler h; public AccessNetwork(String op, String url, String params,Handler h) { super(); this.op = op; this.url = url; this.params = params; this.h = h; } @Override public void run() { Message m = new Message(); m.what = 0x123; if(op.equals("GET")){ Log.i("iiiiiii","发送GET请求"); m.obj = GetPostUtil.sendGet(url, params); Log.i("iiiiiii",">>>>>>>>>>>>"+m.obj); } if(op.equals("POST")){ Log.i("iiiiiii","发送POST请求"); m.obj = GetPostUtil.sendPost(url, params); Log.i("gggggggg",">>>>>>>>>>>>"+m.obj); } h.sendMessage(m); } }
相关文章推荐
- Android发送GET与POST请求的DEMO详解
- Android网络框架-Volley(四) 使用get和post方法发送json请求
- Http学习之使用HttpURLConnection发送post和get请求 android
- Android HTTP实例 使用GET方法和POST方法发送请求
- Android HTTP实例 使用GET方法和POST方法发送请求
- 我的Android进阶之旅------>Android发送GET和POST以及HttpClient发送POST请求给服务器响应
- android 向serverGet和Post请求的两种方式,android向server发送文件,自己组装协议和借助第三方开源
- Android开发 HTTP 发送 Post 与 Get 请求
- Android客户端发送Post/Get请求到Asp.Net服务端一般处理程序Asp.Net进行参数解析
- android之发送Get或Post请求至服务器接口
- Android HTTP实例 使用GET方法和POST方法发送请求
- Android向Web站点发送GET请求、POST请求
- Android 发送HTTP GET POST 请求以及通过 MultipartEntityBuilder 上传文件(二)
- Android向Web站点发送GET请求、POST请求
- Android Get方法和POST方法发送请求
- Android HTTP实例 使用GET方法和POST方法发送请求
- Android入门:发送HTTP的GET和POST请求
- Android客户端发送Get和Post请求
- Android入门:发送HTTP的GET和POST请求
- Android HTTP实例 使用GET方法和POST方法发送请求