建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

httpclient可以跨语言调用第三方接口吗?怎么做?

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是啥?能否跨平台调用?

HttpClient通指HTTP协议的客户端工具包,通俗理解就是通过HttpClient客户端可以对所有的HTTP资源进行请求操作。现在主流的编程语言都有自己的HttpClient工具包,虽然名称未必就叫“HttpClient”!

因为HTTP协议就是跨语言的,所以通过HttpClient可以跨语言调用第三方的API。比如你的项目使用的是PHP开发的,对方提供的HTTP API是Java开发的,调用是不存在问题的!

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

#####

简述

本文主要介绍如何基于HttpClient接口调用。

所需jar


实例

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