java - 如何在 java 中将 json 作为 Rest Post Web 服务的查询参数传递

标签 java json rest query-string

如何在 Java 中将 json 作为查询参数传递给 Rest Post Web 服务

例如:

https://testvpa.net/WebService/ViALoggingRestWS/ViALoggingService.svc/StartCall ?parameter={"machineName":"KK-IVR01","appName":"KKApp","startTime":"2018-02-06T21:38:32","portID":"01","ani":"9189280000","dnis":"8559281111","ctiCallID":"01"}

我正在尝试这样的事情:

...

try{
    JSONObject obj = new JSONObject();
    obj.put("machineName",machineName);
    obj.put("appName", appName);
    obj.put("startTime", formattedCurrentDate);
    obj.put("portID",portID);
    obj.put("ani",ani);
    obj.put("dnis", dnis);
    obj.put("ctiCallID", ctiCallID);

    String strobj = obj.toString();

    String uri = wsUri+"/StartCall?";

    HttpClient client = new HttpClient();
    client.getParams().setConnectionManagerTimeout(1300);
    client.getParams().setSoTimeout(13000);

    PostMethod method = new PostMethod(uri);
    method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    method.setQueryString("parameter="+strobj );

    int statusCode = client.executeMethod(method);

    byte[] responseBody = method.getResponseBody();
    output = new String(responseBody);
}

...

但我在运行时收到“无效的 URI”。它似乎不喜欢查询参数是 json 字符串。我在某处读到过有关对 json 字符串进行编码的内容...我是否需要对 json 字符串进行编码?

最佳答案

如果您使用 POST 请求,则应在请求正文中传递 json 对象,而不是在查询参数中传递。

关于java - 如何在 java 中将 json 作为 Rest Post Web 服务的查询参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49035953/

相关文章:

java - SQL查询: incorrect work with entity

java - 如何从一个类中生成不同类型的对象?

json - 使用 jq(或 awk)将高冗余 CSV 数据转换为嵌套 JSON?

ruby-on-rails - Restful 设计的建议?

c# - 我可以将自定义 JsonSerializer 设置为 RestSharp RestClient

django - 设计 RESTful API

java - 如何在现有项目中使用JPA?

java-匹配字符串中的正则表达式模式(列出匹配和不匹配的部分)

json - 如何使用Elasticsearch将映射放入json文件

objective-c - 如何使用 RestKit 映射根字典?