這個例子是由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.

arrow
arrow

    痞客興 發表在 痞客邦 留言(0) 人氣()