Java中設置請求頭參數和傳參是非常常見的操作,在請求某些API時,需要設置一定的請求頭參數才能獲取到需要的數據。而在POST請求中,也需要將參數傳遞到服務器端進行處理。下面就來簡單介紹一下Java中如何設置請求頭參數和傳參。
設置請求頭參數:
//使用URLConnection發送HTTP請求 URL url = new URL("http://www.example.com"); URLConnection urlConn = url.openConnection(); HttpURLConnection httpConn = (HttpURLConnection) urlConn; //設置請求頭 httpConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"); httpConn.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
上面的代碼中,使用HttpURLConnection類發送HTTP請求,然后使用setRequestProperty方法來設置請求頭的一些參數,例如User-Agent,Accept-Language等。
傳參:
//使用URLConnection發送HTTP POST請求 URL url = new URL("http://www.example.com/api"); URLConnection urlConn = url.openConnection(); HttpURLConnection httpConn = (HttpURLConnection) urlConn; //設置是POST請求 httpConn.setRequestMethod("POST"); //設置請求頭 httpConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko"); httpConn.setRequestProperty("Accept-Language", "zh-CN"); httpConn.setRequestProperty("Connection", "Keep-Alive"); //設置為可寫入數據的模式 httpConn.setDoOutput(true); httpConn.setDoInput(true); //將參數轉換成字節數組 String param = "param1=xxx,param2=yyy"; byte[] bytes = param.getBytes(StandardCharsets.UTF_8); //設置參數長度 httpConn.setRequestProperty("Content-Length", String.valueOf(bytes.length)); //輸出流寫入參數 OutputStream os = httpConn.getOutputStream(); os.write(bytes); os.flush(); os.close();
上面的代碼中,我們使用POST請求發送數據,首先要設置為POST請求,然后再設置請求頭部分參數。接著將參數轉化成字節數組,并設置Content-Length屬性,最后輸出流將參數寫入服務器端,完成POST請求的發送。