java - 如何通用化apache http客户端post参数

标签 java json open-source payment-gateway

我正在尝试在java上制作一个开源通用支付网关库。 我们将在其中集成所有类型的支付网关,以便其他开发人员可以轻松地将任何支付网关集成到该系统中。

但我坚持了一个观点,因为你知道数据可以通过两种方式发布。

  • 旧方法 para1=val1¶2=val2
  • 新的 (JSON) {para1:val1, para2:val2}

对于 http post,我选择 apache http 客户端,但 HttpPost 接受列表

List<NameValuePair> postParams = new ArrayList<>();
postParams.add(new BasicNameValuePair("name", "test"));
postParams.add(new BasicNameValuePair("email", "testemail@domain.com"));
httpPost.setEntity(new UrlEncodedFormEntity(postParams))

对于 json,我正在使用用于 java 的 Gson google json 库。

我想制作一个参数层,可以轻松地以上述两种形式进行转换。

我也想处理复杂的参数。 喜欢, 卡[名称]=一些姓名&卡[号码] = 14444444444

非常感谢您的专家建议。

最佳答案

这个答案是根据服务器代码编写的

翻译层

Translator 将请求转换为操作的内部表示,然后您的数据 Controller 作用于该操作对象。

您可以在转换层重构您的请求,以便数据 Controller 不关心请求是如何发出的,只关心其中包含的数据。

这也可用于返回数据,因此可以使用相同的数据 Controller 创建 XML 和 JSON 输出。

enter image description here

编辑

这应该颠倒过来,因此在客户端情况下,操作会转换为请求,结果证明这是正确的。这会反转图表上的所有箭头

关于java - 如何通用化apache http客户端post参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46244518/

相关文章:

java - XML-RPC 错误,org.xmlpull.v1.XmlPullParserException

php - MySQL 到 JSON(与 NVD3.js 一起使用)

java - 是否存在用于消息传递基础架构的开源项目?

android - Google NFC API 和 Open NFC API 之间的区别?

java - Spring boot服务在没有应用程序服务器的情况下监听ActiveMQ

java - Spring 迭代列表

java - 我可以将字符串文字从字符串池移动到java中的堆吗?为什么?

java - 用于原始类型的 Jackson 序列化器

json - 如何替换 json 字符串和正则表达式中的双引号?

python - 突破 Google App Engine Python 锁定?