java post类_【Java】HttpPost 类

packagecom.example.jtuzi.myapplication;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.support.v7.app.AlertDialog;importjava.io.ByteArrayOutputStream;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.HttpURLConnection;importjava.net.URL;public class HttpPost extendsThread {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 voidrun() {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);elseurl= newURL(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 = newByteArrayOutputStream();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 = newBundle();if (method != null)

bd.putString(method, bos.toString("utf-8"));elsebd.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= newBundle();

bd.putString("error", e.getMessage());

response.setData(bd);

response.sendToTarget();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 JavaHttpURLConnection 或者 Apache HttpClient 库来进行 POST 请求,示例代码如下: 使用 HttpURLConnection: ``` import java.net.HttpURLConnection; import java.net.URL; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { URL url = new URL("http://example.com/api.php"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("POST"); con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); con.setDoOutput(true); String postData = "param1=value1&param2=value2"; OutputStream os = con.getOutputStream(); os.write(postData.getBytes()); os.flush(); os.close(); int responseCode = con.getResponseCode(); System.out.println("Response Code : " + responseCode); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); } } ``` 使用 Apache HttpClient: ``` import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.HttpClientBuilder; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost postRequest = new HttpPost("http://example.com/api.php"); StringEntity input = new StringEntity("{\"param1\":\"value1\",\"param2\":\"value2\"}"); input.setContentType("application/json"); postRequest.setEntity(input); HttpResponse response = httpClient.execute(postRequest); BufferedReader br = new BufferedReader( new InputStreamReader((response.getEntity().getContent()))); String output; while ((output = br.readLine()) != null) { System.out.println(output); } } } ``` 请将 URL 和 postData 替换为你自己的接口地址和 POST 数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值