更新時間:2021-04-28 11:11:50 來源:動力節點 瀏覽953次
其實對于java調用接口進行獲取對方服務器的數據在開發中特別常見,然而一些常用的基礎的知識總是掌握不牢,讓人容易忘記。
總體而言,一些東西知識點一直復制粘貼容易依賴,重要的是會忘記為什么這么寫,只有理解到位,或者八九不離十才可以對于隨時變化的情況進行分析,如果到家,還可以對別人或自己的進行優化。
而對于一些知識點呢,對其進行整理和歸納,這樣容易進行對比加深記憶,對下面代碼和總結進行對比著看。
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是以 屬性=值 傳輸的,若是多個則是 屬性=值&屬性=值 這種形式傳遞的,傳遞給服務器,讓服務器自己去處理。
如何去生成這種形式的呢?最簡單最快的方式在這里 Java將Map拼接成“參數=值&參數=值”
6.close();創建流進行寫入或讀取返回值,創建用完后記得關閉流。
7.有事需要生成時間戳,可以參考java時間類各種方法及用法,這個里面介紹了各種時間方法獲取想要的時間戳
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);
// 這三行是bug,忘了當初是測試打印日志,忘了屏蔽,感謝?黃邦鎖 同學提醒 2019-12-31
// 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://suggest.taobao.com/sug", "code=utf-8&q=商品關鍵字&callback=cb");} catch (Exception e) { // TODO: handle exception System.out.print(e.getMessage());}}
}
以上就是動力節點小編介紹的“Java接口調用怎樣實現”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習