談談Java應用原始HttpURLConnection發送POST數據。本站提示廣大學習愛好者:(談談Java應用原始HttpURLConnection發送POST數據)文章只能為提供參考,不一定能成為您想要的結果。以下是談談Java應用原始HttpURLConnection發送POST數據正文
URLConnection是個籠統類,它有兩個直接子類分離是HttpURLConnection和JarURLConnection。別的一個主要的類是URL,平日URL可以經由過程傳給結構器一個String類型的參數來生成一個指向特定地址的URL實例。
每一個 HttpURLConnection 實例都可用於生成單個要求,然則其他實例可以通明地同享銜接到 HTTP 辦事器的基本收集。要求後在 HttpURLConnection 的 InputStream 或 OutputStream 上挪用 close() 辦法可以釋放與此實例聯系關系的收集資本,但對同享的耐久銜接沒有任何影響。假如在挪用 disconnect() 時耐久銜接余暇,則能夠封閉基本套接字。
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”這類情勢發送
以上內容就是本文的全體所述,願望本文引見對年夜家有所贊助。