安卓Http Post请求封装类
来源:互联网 发布:wind数据库多少钱 编辑:程序博客网 时间:2024/05/21 04:00
自己封装了一个安卓Http post请求的发送及处理的线程类,闲着没事扔到这里来
import android.os.Bundle;import android.os.Handler;import android.os.Message;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;/** * Created by xilingyuli on 2015/11/26. */public class HttpPost extends Thread{ private String connStr; //连接字符串 private String method; //方法名 private String data; //发送的数据 private Message response; //返回的数据 HttpPost(String connStr, String method, String data, Message response) { this.connStr = connStr; this.method = method; this.data = data; this.response = response; } public void run() { if(connStr==null||connStr.equals("")||data==null) return; try { byte b[] = data.getBytes("utf-8"); URL url; if(method!=null) url = new URL(connStr+"/"+method); else url = new URL(connStr); //设置参数 HttpURLConnection con = (HttpURLConnection)url.openConnection(); con.setConnectTimeout(5000); con.setUseCaches(false); con.setDoOutput(true); con.setDoInput(true); con.setRequestMethod("POST"); //设置header con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); //写入数据 OutputStream os = con.getOutputStream(); os.write(b); os.flush(); os.close(); if(response==null) return; //处理返回的结果 /* * message.what是请求码,若请求码不是200,则返回 * 若请求码是200,请求成功,则封装数据。有方法名时数据key值为方法名,否则key值为"data" * 若出现异常,则数据key值为"error",value为异常详细信息 */ response.what = con.getResponseCode(); if(response.what==HttpURLConnection.HTTP_OK) { //向bos写入返回的数据 ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte buffer[] = new byte[1024]; InputStream is = con.getInputStream(); int count = -1; while ((count = is.read(buffer, 0, buffer.length)) != -1) bos.write(buffer, 0, count); is.close(); //封装数据 Bundle bd = new Bundle(); if(method!=null) bd.putString(method, bos.toString("utf-8")); else bd.putString("data", bos.toString("utf-8")); response.setData(bd); } con.disconnect(); response.sendToTarget(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); //处理异常 if(response==null) return; Bundle bd = new Bundle(); bd.putString("error",e.getMessage()); response.setData(bd); response.sendToTarget(); } }}
0 0
- 安卓Http Post请求封装类
- (安卓)拦截器 以及 封装post 请求
- 安卓HTTP请求之get和post方法。
- 安卓网络请求封装--Android-Async-Http
- 【No9.】完美封装Http请求 Get、Post
- HttpClient封装POST,GET方式HTTP请求
- Qt--Http请求封装(Get Post)
- Qt--Http请求封装(Get Post)
- Qt--Http请求封装(Get Post)
- 封装了http Get请求和Post请求
- http post 的封装类
- Apache 大三方法HTTP请求链接响应之HttpClient的GET和POST工具类封装
- 简单封装Http的Get和Post请求
- 纯C++实现的HTTP请求封装(POST/GET)
- angular $q封装$http get和post请求
- android开发http请求POST&GET封装工具
- 基于HttpClient的Get/Post的http请求简单封装
- Java HTTP请求类封装
- input js的判断
- Arrays.asList的解析。
- CSS技巧的收集
- C++primer plus第六版课后编程练习答案7.4
- 简单视差特效的实现
- 安卓Http Post请求封装类
- HDFS配额指南(HDFS Quotas Guide)
- Shiro身份验证(三)
- 应试教育的死穴,恰在于堵死了孩子“犯错”的空间?
- 线索二叉树
- ThreadFactory
- 兼容性:java: cannot execute binary file
- 设置cell分割线顶格
- 史上最直白的pca教程 之 一