Products
GG网络技术分享 2025-03-18 16:11 0
对于各类开发者而言,在日常工作中经常会遇到调用第三方API的场景,因为API有很多种实现方式,不同实现方式则客户端调用方式也不同。但可以很明确的告诉你,HttpClient是可以跨语言调用第三方接口的。
API作为应用程序编程接口,可以使用不同的编程语言进行API的开发,另外接口的表现形式也不同,现在最常用的接口形式有以下这些:
1、HTTP 接口(RESTful)
基于HTTP协议开发的接口现在应用是最为广泛的,这类API使用起来简单明了,因为它是轻量级的、跨平台、跨语言的,但凡是第三方提供的API都会有HTTP版本的接口。
RESTful API也是基于HTTP协议的,只不过RESTful它并不是一种规范,它是一种设计准则,用不同的HTTP动词(GET、POST、DELETE、PUT等)来表达不同的请求。
2、RPC 接口
RPC技术是指远程过程调用,它本质上是一种Client/Server模式,可以像调用本地方法一样去调用远程服务器上的方法,它支持多种协议(如:HTTP、TCP、UDP、自定协议)和多种数据传输方式(如:Json、XML、Binary、Protobuf等)。
3、Web Service 接口
Web Service其实是一种概念,我们可以将以WEB形式提供的服务称为Web Service,所以像RESTful、XML-RPC、SOAP等都可以当成是Web Service的一种实现方式。
不过Web Service接口和HTTP接口存在一些细小区别就是,Web Service接口支持更复杂的对象,而HTTP接口更多的就是传输字符串或者JSON文本。
HttpClient通指HTTP协议的客户端工具包,通俗理解就是通过HttpClient客户端可以对所有的HTTP资源进行请求操作。现在主流的编程语言都有自己的HttpClient工具包,虽然名称未必就叫“HttpClient”!
因为HTTP协议就是跨语言的,所以通过HttpClient可以跨语言调用第三方的API。比如你的项目使用的是PHP开发的,对方提供的HTTP API是Java开发的,调用是不存在问题的!
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!#####
本文主要介绍如何基于HttpClient接口调用。
package httputil_demo;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import com.alibaba.fastjson.JSONObject;
/**
*
* <p>Title: HttputilDemo</p>
*
* <p>Description: http接口请求实例</p>
*
* @author
*
* @date 2020年6月1日
*
*/
public class HttputilDemo {
public static void main(String[] args) {
String Url = \\\"接口地址\\\";
JSONObject jsonparam = new JSONObject();
jsonparam.put(\\\"key\\\", \\\"value\\\");
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(Url);
client.getParams().setContentCharset(\\\"UTF-8\\\");
method.setRequestHeader(\\\"Content-Type\\\", \\\"application/x-www-form-urlencoded; charset=utf-8\\\");
List<NameValuePair> paramList = new ArrayList<NameValuePair>();
for (String key : jsonparam.keySet()) {
paramList.add(new NameValuePair(key, jsonparam.getString(key)));
}
NameValuePair[] array = paramList.toArray(new NameValuePair[paramList.size()]);
method.setRequestBody(array);
String SubmitResult = \\\"\\\";
try {
client.executeMethod(method);
SubmitResult = method.getResponseBodyAsString();
System.out.println(SubmitResult);
} catch (IOException e) {
e.printStackTrace();
} finally {
method.releaseConnection();
}
}
}
如果解决了你的疑惑,请点点关注和评论,谢谢支持。
正春华枝俏,待秋实果茂,与君共勉。
Demand feedback