JAVA怎么调用接口?

Python09

JAVA怎么调用接口?,第1张

String sendPost(String jsonStr, String path)\x0d\x0athrows IOException {\x0d\x0abyte[] data = jsonStr.getBytes()\x0d\x0ajava.net.URL url = new java.net.URL(path)\x0d\x0ajava.net.HttpURLConnection conn = \x0d\x0a(java.net.HttpURLConnection) url.openConnection()\x0d\x0aconn.setRequestMethod("POST")\x0d\x0aconn.setConnectTimeout(5 * 1000)// 设置连接超时时间为5秒 \x0d\x0aconn.setReadTimeout(20 * 1000)// 设置读取超时时间为20秒 \x0d\x0a// 使用 URL 连接进行输出,则将 DoOutput标志设置为 true\x0d\x0aconn.setDoOutput(true)\x0d\x0a \x0d\x0aconn.setRequestProperty("Content-Type", "text/xmlcharset=UTF-8")\x0d\x0a//conn.setRequestProperty("Content-Encoding","gzip")\x0d\x0aconn.setRequestProperty("Content-Length", String.valueOf(data.length))\x0d\x0aOutputStream outStream = conn.getOutputStream()// 返回写入到此连接的输出流\x0d\x0aoutStream.write(data)\x0d\x0aoutStream.close()//关闭流\x0d\x0aString msg = ""// 保存调用http服务后的响应信息\x0d\x0a// 如果请求响应码是200,则表示成功\x0d\x0aif (conn.getResponseCode() == 200) {\x0d\x0a// HTTP服务端返回的编码是UTF-8,故必须设置为UTF-8,保持编码统一,否则会出现中文乱码\x0d\x0aBufferedReader in = new BufferedReader(new InputStreamReader(\x0d\x0a(InputStream) conn.getInputStream(), "UTF-8"))\x0d\x0amsg = in.readLine()\x0d\x0ain.close()\x0d\x0a}\x0d\x0aconn.disconnect()// 断开连接\x0d\x0areturn msg\x0d\x0a}

计算机语言分类有很多,如C、C++、C#、Java、Php、Python等等,她们有各自的特性及擅长的领域,但她们各自又不是全能的。在一个稍微大型一点的项目都会用到多种语言共同完成,那么这些编程语言如何进行通信呢。什么意思呢,就是比如说我Java写的一个方法,其他编程语言要怎么去调用呢?这就是本文要探讨的问题了。

一般来说,方法层面的编程语言通信用的是网络接口形式,只暴露出形参和结果供别人调用。接口一般分为接口定义者和接口调用者,定义者可以规定接收参数的类型及返回形式,而接口定义者则只能完全按照接口定义者规定的参数进行访问。就叫是我们所说的webService(网络服务)。

以前的做法是利用XML作接口格式定义,然后通过Http做通讯和请求,如大名鼎鼎的SOAP,其实现在也是的,只不过现在流行RestFul风格的Rest接口形式,但用的还是XML+HTTP,那这两者有啥区别呢?最大的区别就是SOAP返回的主要是XML格式,有时还需要附带一些辅助文件,而Rest则还可以返回JSON类型的字符串,减少了很多繁乱的XML标签。