我有一个来自队列的json字符串。我需要将其作为请求参数发送,以便通过rest在bpm中创建案例。rest服务输入-请求(字符串),因此我在下面列出并尝试调用rest服务
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}]}\"}";
它给出错误:-错误----不支持http版本
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)
如果我在postman中复制相同的url,那么在这两种情况下都可以正常工作。需要关于如何从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();
}
1条答案
按热度按时间liwlm1x91#
必须将每个参数作为单个参数发送。无法将对象作为地址中的参数发送。如果要发送对象,则必须将其作为实体发送。在这种情况下,您应该写:
id=50和版本=1
而不是:
参数={“请求”:“{'hits':[{'id':'50','version':1}]}”
并在后端处理对象的验证。