Java下通过发送http post请求的代码,javapost,package com.
分享于 点击 15386 次 点评:65
Java下通过发送http post请求的代码,javapost,package com.
package com.everyone.android.net;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<String, String> 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<String, String> 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; }}
用户点评