Java下通過發送http post請求的代碼

g2b4 9年前發布 | 3K 次閱讀 Java

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