JAVA使用原始HttpURLConnection發送POST數據


package com.newflypig.demo;
/**
 * 使用jdk自帶的HttpURLConnection向URL發送POST請求並輸出響應結果
 * 參數使用流傳遞,並且硬編碼為字符串"name=XXX"的格式
 */
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class SendPostDemo {

	public static void main(String[] args) throws Exception{
		String urlPath = new String("http://localhost:8080/Test1/HelloWorld");   
		//String urlPath = new String("http://localhost:8080/Test1/HelloWorld?name=丁丁".getBytes("UTF-8"));
		
		
		String param="name="+URLEncoder.encode("丁丁","UTF-8");
		
		//建立連接
		URL url=new URL(urlPath);
		HttpURLConnection httpConn=(HttpURLConnection)url.openConnection();
		
		//設置參數
		httpConn.setDoOutput(true);		//需要輸出
		httpConn.setDoInput(true);		//需要輸入
		httpConn.setUseCaches(false); 	//不允許緩存
		httpConn.setRequestMethod("POST"); 		//設置POST方式連接
		
		//設置請求屬性
		httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
		httpConn.setRequestProperty("Connection", "Keep-Alive");// 維持長連接
		httpConn.setRequestProperty("Charset", "UTF-8");
		
		//連接,也可以不用明文connect,使用下面的httpConn.getOutputStream()會自動connect
		httpConn.connect();
			
		//建立輸入流,向指向的URL傳入參數
		DataOutputStream dos=new DataOutputStream(httpConn.getOutputStream());
		dos.writeBytes(param);
		dos.flush();
		dos.close();
		
		//獲得響應狀態
		int resultCode=httpConn.getResponseCode();
		if(HttpURLConnection.HTTP_OK==resultCode){
			StringBuffer sb=new StringBuffer();
			String readLine=new String();
			BufferedReader responseReader=new BufferedReader(new InputStreamReader(httpConn.getInputStream(),"UTF-8"));
			while((readLine=responseReader.readLine())!=null){
				sb.append(readLine).append("\n");
			}
			responseReader.close();
			System.out.println(sb.toString());
		}	
	}
}

  

JAVA使用HttpURLConnection發送POST數據是依靠OutputStream流的形式發送

具體編碼過程中,參數是以字符串“name=XXX”這種形式發送


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM