1. 程式人生 > >Java使用原始的HTTPURLConnect傳送post請求

Java使用原始的HTTPURLConnect傳送post請求

主要介紹jdk中的httpURLConnect傳送post請求:

package dbzhang.test;

import java.beans.Encoder;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

/**
*@author:zdb
*@time:2018年10月29日
*@Description: 使用jdk中的HttpURLConnection傳送post請求
*
*/
public class SendPostDemo {
	private static String urlPath = "http://localhost:8080/Test1/HelloWorld";
	
	public static void main(String[] args) throws IOException {
		
		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());
        }  
		
	}
}