如何解决在 POST 方法中发送 Json 请求
我有一个来自 Queue 的 JSON 字符串。我需要将它作为请求参数发送以通过 REST 在 BPM 中创建一个案例。 休息服务输入-请求(字符串) 因此,我形成了以下内容并尝试调用其余服务
Request- {\"request\":\"{'hits' : [{'id' : '50','version' : 1}]}\"}
When i use the uri="https://localhost:9044/rest/bpm/wle/v1/service/RISKM%40CreateCase?action=start¶ms=%7B%22request%22%3A%22%7B+%5C%22hits%5C%22+%3A+%5B+%7B+%5C%22id%5C%22+%3A+%5C%2250%5C%22%2C+%5C%22version%5C%22+%3A+1%7D%5D%7D%22%7D&createTask=false&parts=all";
以上工作正常
但是当我使用下面的
uri="https://localhost:9044/rest/bpm/wle/v1/service/RISKM@CreateCase?action=start&createTask=false&parts=all¶ms={\"request\":\"{'hits' : [{'id' : '50','version' : 1}]}\"}";
java.lang.NullPointerException
Response 500
at java.io.Reader.<init>(Reader.java:89)
at java.io.InputStreamReader.<init>(InputStreamReader.java:118)
at com.sita.createCase.Restcall2.readContent(Restcall2.java:193)
at com.sita.createCase.Restcall2.makeRestCall(Restcall2.java:162)
at com.sita.createCase.Restcall2.CallRest(Restcall2.java:94)
at com.sita.createCase.Restcall2.main(Restcall2.java:216)
如果我在邮递员中复制相同的网址,则在这两种情况下都可以正常工作。 需要有关如何从 Java 客户端发送此请求的帮助。 还有如何对json字符串进行字符串化?
下面是Java客户端代码
HttpsURLConnection connection = null;
try {
URL url = new URL(uri);
connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Authorization",authorization);
connection.connect();
}
解决方法
您必须将每个参数作为单个参数发送。 无法将对象作为地址中的参数发送。 如果要发送对象,必须将其作为正文发送。 在这种情况下你应该写:
id=50&version=1
代替:
params={"request":"{'hits' : [{'id' : '50','version' : 1}]}"}"
并处理后端对象的验证。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。