package com.example.jtuzi.myapplication; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.AlertDialog; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class HttpPost extends Thread { private String connStr; //连接字符串 private String method; //方法名 private String data; //发送的数据 private Message response; //返回的数据 HttpPost11(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(); System.out.println("准备输出结果"); response.sendToTarget(); Handler } 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(); } } }
【Java】HttpPost 类
猜你喜欢
转载自www.cnblogs.com/Jtuzi/p/9185265.html
今日推荐
周排行