java - 在Java中的curl命令字符串中传递Json值中的空格

标签 java json string curl space

我正在使用Java中的curl命令字符串发送POST请求。我在命令字符串中传递 json,该字符串的值中包含空格。当编译器遇到 json 中的空格时,我收到错误。我需要保留空格并传递字符串curl 命令中的值。请帮忙。如果有人可以重写我的 string[] 命令来帮助我理解我的错误,我会很棒。这是我的代码。

String[] command = { "curl", "-X", "POST", "http://my.url.com/add", "-H", "accept: application/json", "-H", "AuthorizationToken: 123", "-H", "Content-Type: application/json", "-d", "{\"FieldLabels\":\"Name,Status,Employee number\",\"FieldValues\":\"test7,Planned,Raj Kumar(123)\",\"Type\":\"BT\"}" };

            ProcessBuilder process = new ProcessBuilder(command);
            Process p;
            try 
            {
            p = process.start();
            BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
            StringBuilder builder = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                            builder.append(line);
                            builder.append(System.getProperty("line.separator"));
            }
            String result = builder.toString();
            System.out.print(result);

            }
        catch (Exception e)
        {
        e.printStackTrace();
        }

        Error:

        {
          "message" : {
            "statusCode" : "500",
            "Status" : "Internal Server Error",
            "requestedURI" : "/api/EFormService/createEFormItemData",
            "error" : "Expected a ':' after a key at character 25 of {FieldLabels:Name,Status,Employee"
          }
        }

最佳答案

尝试将 json 请求放入文件中,并在curl 请求中使用以下格式

--data "@<path/to/file>"

'@'表示请求数据位于以下路径的文件中。

举个例子:

数据:

{"FieldLabels":"Name,Status,Employee number","FieldValues":"test7,Planned,Raj Kumar(123)","Type":"BT"}

此数据需要保存到文件中,例如:/tmp/reqData 那么下面是你的命令

{ "curl", "-X", "POST", "http://my.url.com/add", "-H", "accept: application/json", "-H", "AuthorizationToken: 123", "-H", "Content-Type: application/json", "-d", "@/tmp/reqData" };

关于java - 在Java中的curl命令字符串中传递Json值中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61305689/

相关文章:

javascript - 如何解决 Access-Control-Allow-Origin 错误?

javascript - 我如何开始使用 C# 和 MVC 创建这个 javascript 结构?

java - Play 框架中的表单验证

java - ValidationException异常描述: Cannot acquire data source [jdbc/MyDataBase]

java - 从数组中删除对象并将其替换为另一个数组中的对象

algorithm - 出现n次的最长子串

python - 如何通过(字符串)名称选择变量?

c - 使用 C 在字符串中插入参数

java - 在 Java 中为自定义类定义 +=

java - 如何在运行时实例化 Spring 托管 bean?