Передайте пустое пространство в Json значение в командной строке curl в Java - PullRequest
0 голосов
/ 19 апреля 2020

Я отправляю запрос POST, используя командную строку curl в Java. Я передаю 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"
          }
        }

Ответы [ 2 ]

0 голосов
/ 19 апреля 2020

Я создал JSON объект, открыл соединение с httpurlconnection, установил параметры заголовка и передал объект jason в теле. это сработало. Спасибо Сарат.

0 голосов
/ 19 апреля 2020

Попытайтесь поместить запрос json в файл и используйте следующий формат в запросе curl

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

'@' представляет данные запроса в файле по следующему пути.

для вашего примера:

данные:

{"FieldLabels": "Имя, Статус, Номер сотрудника", "FieldValues": "test7, Запланировано, Радж Кумар (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" };
...