在post方法中发送json请求

bmvo0sr5  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(357)

我有一个来自队列的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&params=%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&params={\"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();
        }
liwlm1x9

liwlm1x91#

必须将每个参数作为单个参数发送。无法将对象作为地址中的参数发送。如果要发送对象,则必须将其作为实体发送。在这种情况下,您应该写:
id=50和版本=1
而不是:
参数={“请求”:“{'hits':[{'id':'50','version':1}]}”
并在后端处理对象的验证。

相关问题