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<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;
}
}</pre>
本文由用戶 g2b4 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!