1、首先URL restURL = new URL(url)
;這其中的url就是需要調的目標介面位址,URL類別是java.net.*下的類別。
2、setRequestMethod("POST")
;請求方式是有兩個值可以選擇,一個是GET,一個是POST,選擇對應的請求方式
3、setDoOutput(true);setDoInput(true)
;
setDoInput(): // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在http正文内, 因此需要设为true, 默认是false; setDoOutput(): // 设置是否从httpUrlConnection读入,默认情况下是true;
4、setAllowUserInteraction();allowUserInteraction
如果為true,則在允許使用者互動(例如彈出一個驗證對話框)的上下文中對此URL 進行檢查。
5、下面程式碼的query是以 屬性=值 傳輸的,若是多個則是 屬性=值&屬性=值 這種形式傳遞的,傳遞給伺服器,讓伺服器自己去處理。
6、close();
建立流進行寫入或讀取回傳值,建立用完後記得關閉流。
實例教學:
package com.c; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.HashMap; import java.util.Map; public class RestUtil { public String load(String url,String query) throws Exception { URL restURL = new URL(url); /* * 此处的urlConnection对象实际上是根据URL的请求协议(此处是http)生成的URLConnection类 的子类 HttpURLConnection */ HttpURLConnection conn = (HttpURLConnection) restURL.openConnection(); //请求方式 conn.setRequestMethod("POST"); //设置是否从httpUrlConnection读入,默认情况下是true; httpUrlConnection.setDoInput(true); conn.setDoOutput(true); //allowUserInteraction 如果为 true,则在允许用户交互(例如弹出一个验证对话框)的上下文中对此 URL 进行检查。 conn.setAllowUserInteraction(false); PrintStream ps = new PrintStream(conn.getOutputStream()); ps.print(query); ps.close(); BufferedReader bReader = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line,resultStr=""; while(null != (line=bReader.readLine())) { resultStr +=line; } System.out.println("3412412---"+resultStr); bReader.close(); return resultStr; } public static void main(String []args) {try { RestUtil restUtil = new RestUtil(); String resultString = restUtil.load( "http://192.168.10.89:8080/eoffice-restful/resources/sys/oaholiday", "floor=first&year=2017&month=9&isLeader=N"); } catch (Exception e) { // TODO: handle exception System.out.print(e.getMessage()); } } }
推薦教學:Java教學
以上是java中呼叫介面的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!