以下的範例我有稍微修改
-----------------------java-----------------------
package httppost; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class TestHttp { // HTTP GET request public void sendGet() throws Exception { String url = "http://127.0.0.1/test.php?id=中文字&pw=中文字"; URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("GET"); con.setRequestProperty("User-Agent", "Mozilla/5.0"); int responseCode = con.getResponseCode(); System.out.println("\nSending 'GET' request to URL : " + url); System.out.println("Response Code : " + responseCode); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); } // HTTP POST request private void sendPost() throws Exception { String url = "http://127.0.0.1/test.php"; URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("POST"); con.setRequestProperty("User-Agent", "Mozilla/5.0"); con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); String data = "id=UTF8中文字&pw=UTF8中文字"; con.setDoOutput(true); DataOutputStream wr = new DataOutputStream(con.getOutputStream()); //wr.writeBytes(data); wr.write(data.getBytes("utf-8"));//為了傳送utf8的文字改成這個 wr.flush(); wr.close(); int responseCode = con.getResponseCode(); System.out.println("Sending 'POST' request to URL : " + url); System.out.println("Post parameters : " + data); System.out.println("Response Code : " + responseCode); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); } public static void main(String[] args) throws Exception { TestHttp testhttp = new TestHttp(); testhttp.sendPost(); testhttp.sendGet(); } }-----------------------PHP-----------------------
if($_GET['id'] != '' && $_GET['pw'] != '') { echo 'id=' . $_GET['id'] . ' pw=' . $_GET['pw']; } if($_POST['id'] != '' && $_POST['pw'] != '') { echo 'id=' . $_POST['id'] . ' pw=' . $_POST['pw']; }補充 可以用這個來取得標頭
//--------- Map> header = con.getHeaderFields(); for (Map.Entry > entry : header.entrySet()) { String key = entry.getKey(); for (String value : entry.getValue()) { System.out.println(key + ":" + value); } } //---------
沒有留言:
張貼留言