我正在尝试通过Jersey客户端API发布数据。我有一个名为“ Channel”的类。它有很多字段,但发布时需要两个字段。下面的curl命令可以正常工作。
curl -X POST \
--header "XXX" \
-d "[{\"name\":\"first\",\"protocol_name\":\"test\"}]" \
"https://YYY.com"
我正在使用Form
类,以便不发送Channel
类的所有字段。但是我不能在请求中给出数组格式。当我使用下面的代码时,出现“找不到类javax.ws.rs.core.Form的序列化程序” 错误。当我使用Form
对象的非数组时,我从服务器收到错误请求错误。
当我编写一个只有两个字段的Channel
类时,我可以发送该Channel
对象的数组,并且服务器正在接受它。但是在这种情况下,我需要为该请求创建一个新类。同样对于其他请求,我将需要创建新的类。
Form [] forms = new Form[1];
forms[0] = new Form();
forms[0].param("name", newChannel.name);
forms[0].param("protocol_id", Integer.toString(newChannel.protocol_id));
String response = accept.post(Entity.entity(forms, MediaType.APPLICATION_JSON_TYPE), String.class);