接口调用是什么意思?常用的接口调用方式分享

知梧 623 2022-08-31


本文关于接口调用是什么意思?常用的接口调用方式分享。

想要理解接口调用,我们需要先知道接口到底是什么?


这个问题我也是研究了好多天才整明白的。MSDN、书上什么的都是直接写它的样子、形状、规则、像什么……等等的,就是不说它到底是个啥!不明白老外都怎么想的!



接口,是一种约束形式,或者叫连接通路,它为不相关的类提供通用的处理服务:


1、不相关的类可以通过接口调用“接口功能类(或结构)”中的同名的方法、属性、索引器和事件;接口中只描述这些方法(或属性、索引、事件)的签名;而基于该接口的“接口功能类(或结构)”里面(是指实现接口功能的类或结构,而非调用它们的类),则是描述了这个同名的方法、属性、索引器和事件的各自不同的具体实现代码。


2、当有类或程序调用该接口所描述的方法、属性、索引器或事件(即接口成员)时,编译器会通过接口找到对应的那个”接口功能类或结构”,然后执行里面的功能代码。
3、这种通过接口的调用,到底指向哪个“接口功能类(或结构)”中的方法、属性、索引器或事件,是通过与多态性的结合来实现的。如果没有多态性相关代码绑定,接口就毫无意义。



注:
关于“多态性绑定”的实现需要在理解了上面的内容以后,再研究一下“多态性”这个问题,就能迎刃而解了。
提示:
涉及到主系统和子系统的问题时,要根据你的程序组织结构和相关的引用(命名空间、外部类、访问域等)来具体问题具体分析。

几种常用接口调用方式

个人总结下几种常用的接口调用方式,具体看对方提供的是什么样的webService接口,如有错误,欢迎指正;

1、以前玩微信公众帐号开发的时候,调用过百度翻译的接口,就是这种形式的接口:

/**

  • 翻译(中->英 英->中 日->中 )


  • @param source

  • @return
    */
    public static String translate(String source) {
    String dst = null;

// 组装查询地址
String requestUrl = “http://openapi.baidu.com/public/2.0/bmt/translate?client_id=CaHtZCTje6XaaYp1tSZN4RAa&q={keyWord}&from=auto&to=auto”;
// 对参数q的值进行urlEncode utf-8编码
requestUrl = requestUrl.replace("{keyWord}", urlEncodeUTF8(source));

// 查询并解析结果
try {
// 查询并获取返回结果
String json = httpRequest(requestUrl);
// 通过Gson工具将json转换成TranslateResult对象
TranslateResult translateResult = new Gson().fromJson(json,
TranslateResult.class);
// 取出translateResult中的译文
dst = translateResult.getTrans_result().get(0).getDst();
} catch (Exception e) {
e.printStackTrace();
}

if (null == dst)
dst = “翻译系统异常,请稍候尝试!”;
return dst;
}
/**

  • 发起http请求获取返回结果


  • @param requestUrl

  •        请求地址
    • 1

  • @return
    */
    public static String httpRequest(String requestUrl) {
    StringBuffer buffer = new StringBuffer();
    try {
    URL url = new URL(requestUrl);
    HttpURLConnection httpUrlConn = (HttpURLConnection) url
    .openConnection();

httpUrlConn.setDoOutput(false);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);

httpUrlConn.setRequestMethod(“GET”);
httpUrlConn.connect();

// 将返回的输入流转换成字符串
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(
inputStream, “utf-8”);
BufferedReader bufferedReader = new BufferedReader(
inputStreamReader);

String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 释放资源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();

} catch (Exception e) {
}
return buffer.toString();
}

2、CXF接口调用;

public static void main(String[] args) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(ICXFService.class);
factory.setAddress(“http://localhost:8081/ws/cxf/services/helloworld?wsdl”);
ICXFService client = (ICXFService) factory.create();
System.out.println(client.sayHello(“andrewLau”)); //sayHello为接口提供方法;
}

3、AXIS接口调用

public static void main(String[] args) {
try {
String url = “http://localhost:8081/axis/services/HelloHandler?wsdl”;
Service serv = new Service();
Call call = (Call) serv.createCall();
call.setTargetEndpointAddress(url);
call.setOperationName(new QName(url, “hello”));
String result = (String) call.invoke(new Object[] { “xiexx” }); //invoke为接口提供方法
System.out.println(result);
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}

4、XFIRE接口调用R

public static void main(String[] args) throws Exception {
String url = “http://localhost:8081/ws/services/HelloRmi”;
Service serv = new ObjectServiceFactory().create(IHelloRmi.class);
IHelloRmi service = (IHelloRmi) new XFireProxyFactory().create(serv,
url);
String result = service.hello(“xiexx”); //hello为接口提供方法
System.out.println(result);
}

5、还有一种方式是利用eclipse的webservice client,直接用wsdl地址自动生成,不需要管到底是什么接口的,直接调用。

上述就是小编为大家整理的接口调用是什么意思?常用的接口调用方式分享。

国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)接口管理软件分析、比较及推荐。



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java8中AbstractExecutorService与FutureTask源码详解
下一篇:基于python的文件监控watchdog(python监控服务器资源)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~