java調用介面
A. java如何調用對方http介面 新手虛心求教
importjava.io.BufferedReader;
importjava.io.DataOutputStream;
importjava.io.InputStreamReader;
importjava.net.HttpURLConnection;
importjava.net.URL;
importjava.net.URLEncoder;
publicclassDemoTest1{
publicstaticfinalStringGET_URL="http://112.4.27.9/mall-back/if_user/store_list?storeId=32";
//publicstaticfinalStringPOST_URL="http://112.4.27.9/mall-back/if_user/store_list";
//妙兜測試介面
publicstaticfinalStringPOST_URL="http://121.40.204.191:8180/mdserver/service/installLock";
/**
*介面調用GET
*/
(){
try{
URLurl=newURL(GET_URL);//把字元串轉換為URL請求地址
HttpURLConnectionconnection=(HttpURLConnection)url.openConnection();//打開連接
connection.connect();//連接會話
//獲取輸入流
BufferedReaderbr=newBufferedReader(newInputStreamReader(connection.getInputStream(),"UTF-8"));
Stringline;
StringBuildersb=newStringBuilder();
while((line=br.readLine())!=null){//循環讀取流
sb.append(line);
}
br.close();//關閉流
connection.disconnect();//斷開連接
System.out.println(sb.toString());
}catch(Exceptione){
e.printStackTrace();
System.out.println("失敗!");
}
}
/**
*介面調用POST
*/
(){
try{
URLurl=newURL(POST_URL);
//將url以open方法返回的urlConnection連接強轉為HttpURLConnection連接(標識一個url所引用的遠程對象連接)
HttpURLConnectionconnection=(HttpURLConnection)url.openConnection();//此時cnnection只是為一個連接對象,待連接中
//設置連接輸出流為true,默認false(post請求是以流的方式隱式的傳遞參數)
connection.setDoOutput(true);
//設置連接輸入流為true
connection.setDoInput(true);
//設置請求方式為post
connection.setRequestMethod("POST");
//post請求緩存設為false
connection.setUseCaches(false);
//設置該HttpURLConnection實例是否自動執行重定向
connection.setInstanceFollowRedirects(true);
//設置請求頭裡面的各個屬性(以下為設置內容的類型,設置為經過urlEncoded編碼過的from參數)
//application/x-javascripttext/xml->xml數據application/x-javascript->json對象application/x-www-form-urlencoded->表單數據
//;charset=utf-8必須要,不然妙兜那邊會出現亂碼【★★★★★】
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
//建立連接(請求未開始,直到connection.getInputStream()方法調用時才發起,以上各個參數設置需在此方法之前進行)
connection.connect();
//創建輸入輸出流,用於往連接裡面輸出攜帶的參數,(輸出內容為?後面的內容)
DataOutputStreamdataout=newDataOutputStream(connection.getOutputStream());
Stringapp_key="app_key="+URLEncoder.encode("","utf-8");//已修改【改為錯誤數據,以免信息泄露】
Stringagt_num="&agt_num="+URLEncoder.encode("10111","utf-8");//已修改【改為錯誤數據,以免信息泄露】
Stringpid="&pid="+URLEncoder.encode("BLZXA150401111","utf-8");//已修改【改為錯誤數據,以免信息泄露】
Stringdepartid="&departid="+URLEncoder.encode("10007111","utf-8");//已修改【改為錯誤數據,以免信息泄露】
Stringinstall_lock_name="&install_lock_name="+URLEncoder.encode("南天大門","utf-8");
Stringinstall_address="&install_address="+URLEncoder.encode("北京育新","utf-8");
Stringinstall_gps="&install_gps="+URLEncoder.encode("116.350888,40.011001","utf-8");
Stringinstall_work="&install_work="+URLEncoder.encode("小李","utf-8");
Stringinstall_telete="&install_telete="+URLEncoder.encode("13000000000","utf-8");
Stringintall_comm="&intall_comm="+URLEncoder.encode("一切正常","utf-8");
//格式parm=aaa=111&bbb=222&ccc=333&ddd=444
Stringparm=app_key+agt_num+pid+departid+install_lock_name+install_address+install_gps+install_work+install_telete+intall_comm;
//將參數輸出到連接
dataout.writeBytes(parm);
//輸出完成後刷新並關閉流
dataout.flush();
dataout.close();//重要且易忽略步驟(關閉流,切記!)
//System.out.println(connection.getResponseCode());
//連接發起請求,處理伺服器響應(從連接獲取到輸入流並包裝為bufferedReader)
BufferedReaderbf=newBufferedReader(newInputStreamReader(connection.getInputStream(),"UTF-8"));
Stringline;
StringBuildersb=newStringBuilder();//用來存儲響應數據
//循環讀取流,若不到結尾處
while((line=bf.readLine())!=null){
//sb.append(bf.readLine());
sb.append(line).append(System.getProperty("line.separator"));
}
bf.close();//重要且易忽略步驟(關閉流,切記!)
connection.disconnect();//銷毀連接
System.out.println(sb.toString());
}catch(Exceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
//httpURLConectionGET();
httpURLConnectionPOST();
}
}
B. java類調用介面中的方法
你要理解介面的作用。介面提供了一種規范,就像現實中,USB介面是一種介面一樣,但是介面一定要有一個具體的實現,比如你的U盤,充電寶等等。相同的介面可以「保證」正常的調用,而不用知道實現這個介面的類具體是個什麼東西。當你把USB介面的設備插在U口上時,其實你並不太關心這些設備內部到底有什麼不同。
面向對象提出介面的概念,就是為了達到這個目的。如果有三個類,都實現了某一介面,它你的代碼調用它們的時候,你不用關心這三個類都有哪些不同,你只關心它們相同的部分,就是介面所「規定」的那些方法,它們肯定要實現的,但具體的實現一定是在各自的類定義里。所以你在看代碼的時候,要看介面方法的具體實現,要在實現介面的類里去看,而不是看介面本身。不知道這樣說,你清楚了沒有。
C. JAVA介面調用
介面是用來繼承和實現的 介面裡面的方法只能是抽象方法 實現介面的類必須實現其所有方法
你的介面類寫錯了 應該是
public interface PetInterface {
public abstract void pet();
}
比如說你的Fruit類實現PetInterface介面寫法為:
class Fruit implemented PetInterface{
public void pet(){
}
public void hitChild(){
System.out.println("水果:");
}
D. 如何用Java調用別人API介面
java發一個http請求過去,帶上參數就可以了啊,跟我們在瀏覽器上訪問資源是一樣的 只是它返回的是json格式的數據而已
給你兩個方法吧:
public static String do_post(String url, List<NameValuePair> name_value_pair) throws IOException {
String body = "{}";
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
HttpPost httpost = new HttpPost(url);
httpost.setEntity(new UrlEncodedFormEntity(name_value_pair, StandardCharsets.UTF_8));
HttpResponse response = httpclient.execute(httpost);
HttpEntity entity = response.getEntity();
body = EntityUtils.toString(entity);
} finally {
httpclient.getConnectionManager().shutdown();
}
return body;
}
public static String do_get(String url) throws ClientProtocolException, IOException {
String body = "{}";
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
body = EntityUtils.toString(entity);
} finally {
httpclient.getConnectionManager().shutdown();
}
return body;
}
E. java http調用介面書寫
rest介面的話可以使用
RestTemplate
Stringuri="http://example.com/hotels/1/bookings";
PostMethodpost=newPostMethod(uri);
Stringrequest=//createbookingrequestcontent
post.setRequestEntity(newStringRequestEntity(request));
httpClient.executeMethod(post);
if(HttpStatus.SC_CREATED==post.getStatusCode()){
Headerlocation=post.getRequestHeader("Location");
if(location!=null){
System.out.println("Creatednewbookingat:"+location.getValue());
}
}
api文檔參考http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/remoting.html#rest-client-access
F. java寫的介面怎麼調用
訪問形式如下例子:
//介面
publicinterfaceLoggerUtil{
//得到Logger,用於列印日誌
Loggerlogger=Logger.getLogger(LoggerUtil.class);
}
@RequestMapping("/delete.do")
publicStringdelete(Studentsstudents){
try{
stuService.delete(students);
}catch(Exceptione){
//介面的調用方式(直接調用)
LoggerUtil.logger.error(e.getMessage());
}
return"redirect:selectAll.do";
}
G. java中介面直接調用方法
在另一個類中的service的類型是介面service,但構造是用serviceImpl的構造構造函數構造的,你查看下另一個類的代碼,此外,service也可以是由spring構造注入的,看下spring的配置文件或者注釋確認下
H. java怎麼使用介面 java如何實現介面操作
介面是Java 實現多繼承的一種機制,一個類可以實現一個或多個介面。介面是一系列
方法的聲明,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些
方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為。簡單的說介面不
是類,但是定義了一組對類的要求,實現介面的某些類要與介面一致。
在Java 中使用關鍵字interface 來定義介面。例如:
publicinterfaceCompare{
publicintcompare(ObjectotherObj);
}
Compare 介面定義了一種操作compare,該操作應當完成與另一個對象進行比較的功能。
它假定某個實現這一介面的類的對象x 在調用該方法時,例如x . compare(y),如果x 小於y,
返回負數,相等返回0,否則返回正數。
舉例
{
privateStringsId;//學號
//Constructor
10
publicStudent(){
this("","","");
}
publicStudent(Stringname,Stringid,StringsId){
super(name,id);
this.sId=sId;
}
publicvoidsayHello(){
super.sayHello();
System.out.println(".");
}
//get&setmethod
publicStringgetSId(){
returnthis.sId;}
publicvoidsetSId(StringsId){
this.sId=sId;}
//implementsCompareinterface
publicintcompare(ObjectotherObj){
Studentother=(Student)otherObj;
returnthis.sId.compareTo(other.sId);
}
}//endofclass