java发送http请求代码_Java下通过发送http post请求的代码详解

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

import java.util.Map;

import org.apache.http.protocol.HTTP;

import com.everyone.android.callback.ParseCallback;

import com.everyone.android.callback.ResultCallback;

/**

* 功能描述:通过HTTP协议发送POST请求

* @author android_ls

*

*/

public class AsyncHttpPost extends AsyncBaseRequest {

/**

*

*/

private static final long serialVersionUID = 3L;

public AsyncHttpPost(String url, Map parameter,

ParseCallback handler, ResultCallback requestCallback) {

super(url, parameter, handler, requestCallback);

}

@Override

protected InputStream getRequestResult() throws IOException {

StringBuilder sb = new StringBuilder();

if(parameter!=null && !parameter.isEmpty()){

for(Map.Entry entry : parameter.entrySet()){

sb.append(entry.getKey()).append('=')

.append(URLEncoder.encode(entry.getValue(), HTTP.UTF_8)).append('&');

}

sb.deleteCharAt(sb.length()-1);

}

// 得到实体的二进制数据

byte[] entitydata = sb.toString().getBytes();

URL url = new URL(requestUrl);

mHttpURLConn = (HttpURLConnection)url.openConnection();

mHttpURLConn.setRequestMethod("POST");

mHttpURLConn.setConnectTimeout(5 * 1000);

// 如果通过post提交数据,必须设置允许对外输出数据

mHttpURLConn.setDoOutput(true);

mHttpURLConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

mHttpURLConn.setRequestProperty("Content-Length", String.valueOf(entitydata.length));

OutputStream outStream = mHttpURLConn.getOutputStream();

outStream.write(entitydata);

outStream.flush();

outStream.close();

if(mHttpURLConn.getResponseCode()== HttpURLConnection.HTTP_OK){

return mHttpURLConn.getInputStream();

}

return null;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值