我正在尝试在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 输出。
编辑
这应该颠倒过来,因此在客户端情况下,操作会转换为请求,结果证明这是正确的。这会反转图表上的所有箭头
关于java - 如何通用化apache http客户端post参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46244518/