1. 程式人生 > >post請求向伺服器傳送資料

post請求向伺服器傳送資料

package com.xreal.arsearch.utils;
import android.util.Log;
import java.io.ByteArrayOutputStream;
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.HashMap;
import java.util.Map;
/** * Created by MrWang on 2017/2/10. */ public class UploadFile { public static String uploadFile(String actionUrl) { Map map = new HashMap(); map.put("jsondata","dsfdasfdasf"); byte[] data = getRequestData(map, "utf-8").toString().getBytes();//獲得請求體 try { //String urlPath = "http://192.168.1.9:80/JJKSms/RecSms.php";
URL url = new URL(actionUrl); HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection(); httpURLConnection.setConnectTimeout(3000); //設定連線超時時間 httpURLConnection.setDoInput(true); //開啟輸入流,以便從伺服器獲取資料 httpURLConnection.setDoOutput(true); //開啟輸出流,以便向伺服器提交資料
httpURLConnection.setRequestMethod("POST"); //設定以Post方式提交資料 httpURLConnection.setUseCaches(false); //使用Post方式不能使用快取 //設定請求體的型別是文字型別 httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); //設定請求體的長度 httpURLConnection.setRequestProperty("Content-Length", String.valueOf(data.length)); //獲得輸出流,向伺服器寫入資料 OutputStream outputStream = httpURLConnection.getOutputStream(); outputStream.write(data); int response = httpURLConnection.getResponseCode(); //獲得伺服器的響應碼 if(response == HttpURLConnection.HTTP_OK) { Log.e("111111","上傳成功"); InputStream inputStream = httpURLConnection.getInputStream(); return dealResponseResult(inputStream); //處理伺服器的響應結果 }else { Log.e("111111","上傳失敗"); } } catch (IOException e) { //e.printStackTrace(); return "err: " + e.getMessage().toString(); } return "-1"; } /* * Function : 封裝請求體資訊 * Param : params請求體內容,encode編碼格式 */ public static StringBuffer getRequestData(Map<String, String> params, String encode) { StringBuffer stringBuffer = new StringBuffer(); //儲存封裝好的請求體資訊 try { for(Map.Entry<String, String> entry : params.entrySet()) { stringBuffer.append(entry.getKey()) .append("=") .append(URLEncoder.encode(entry.getValue(), encode)) .append("&"); } stringBuffer.deleteCharAt(stringBuffer.length() - 1); //刪除最後的一個"&" } catch (Exception e) { e.printStackTrace(); } return stringBuffer; } /* * Function : 處理伺服器的響應結果(將輸入流轉化成字串) * Param : inputStream伺服器的響應輸入流 */ public static String dealResponseResult(InputStream inputStream) { String resultData = null; //儲存處理結果 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); byte[] data = new byte[1024]; int len = 0; try { while((len = inputStream.read(data)) != -1) { byteArrayOutputStream.write(data, 0, len); } } catch (IOException e) { e.printStackTrace(); } resultData = new String(byteArrayOutputStream.toByteArray()); Log.e("1111",resultData); return resultData; } }