這個例子是由JAVA傳送參數給WEB API,並取得WEB API的返回值.
而例子的WEB程式是PHP,很簡單的只是接從WEB使用POST傳來的二個參數,並整合成一段文字,顯示在網頁上
<?php
$name = $_POST['user'];
$age = $_POST['age'];
echo $name.",you are ".$age." years old.";
?>
而JAVA的程式碼如下
package com.mydomain.java.modules;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class UrlPostTest {
public static void main(String[] args) {
String urlParameters = "user=charles&age=100";
byte[] postData = urlParameters.getBytes( StandardCharsets.UTF_8 );
int postDataLength = postData.length;
String checkurl = "http://127.0.0.1:8080/livepu/postTest.php";
try
{
URL connectto = new URL(checkurl);
HttpURLConnection conn = (HttpURLConnection) connectto.openConnection();
conn.setRequestMethod( "POST" );
conn.setRequestProperty( "Content-Length", Integer.toString( postDataLength ));
conn.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty( "charset", "utf-8");
conn.setUseCaches(false);
conn.setAllowUserInteraction(false);
conn.setInstanceFollowRedirects( false );
conn.setDoOutput( true );
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
int responseCode = conn.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + checkurl);
System.out.println("Post parameters : " + urlParameters);
System.out.println("Response Code : " + responseCode);
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line+"\n");
}
br.close();
System.out.println("WEB return value is : " + sb);
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
執行後的結果如下
Sending 'POST' request to URL : http://10.57.180.171:8080/livepu/postTest.php
Post parameters : user=charles&age=100
Response Code : 200
WEB return value is : charles,you are 100 years old.