2017-02-16 5 views
0

У меня возникла проблема с записью файла с помощью cURL.cURL - Запись в файл

Я нацеливаюсь на систему билетов и создаю билет с помощью cUrl. Это работает отлично. Ответ заключается в следующем

% Total % Received % Xferd Average Speed Time Time  Time Current 
          Dload Upload Total Spent Left Speed 
    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0100 136 100 51 100 85 246 410 --:--:-- --:--:-- --:--:-- 414 
{"id": 132234998736, "result": 232, "error": null} 

В конце концов мне нужна последняя строка в файле XML я взывал с временным именем (например, 13381981.xml)

Теперь, когда я использую

-O "13381981.xml" 

в моем коде файл не найден с дополнительным сообщением curl: Удаленное имя файла не имеет длины !.

Что мне не хватает, что я могу написать в XML-файл?

Так вот полный пример:

curl -H "Content-Type: application/json" --data '{"params":["Header","Tickettext"], "method":"ticket.create", "id" 132234998131}' -o "test.xml" -u trac:trac http://test:8080/login/jsonrpc 
+0

Теперь я не получаю сообщение об ошибке, но нет ответа от системы билета – wg15music

+0

Если я не использую -o с именем файла, все работает ... нужно ли быть в особой позиции в запросе? – wg15music

+0

все в порядке, исправлено это lil бит, по-прежнему говорит, что он не найдет файл: S – wg15music

ответ

1

Аргумент вы передаете --data потребности котироваться должным образом, как сейчас он содержит пробелы и, таким образом, будет считаться несколькими аргументами. curl будет обрабатывать аргументы, которые не начинаются с тире (-) в качестве URL-адреса, и все будет идти вниз оттуда.

Одна возможность состоит в том, чтобы вложить всю вещь в одинарные кавычки (который не будет работать на Windows, хотя):

curl -H "Content-Type: application/json" --data '{"params":["Header","Tickettext"], "method":"ticket.create", "id" 132234998131}' -o "test.xml" -u trac:trac http://test:8080/login/jsonrpc 
+0

А, я пропустил их при повторном наборе кода, я использовал их раньше и все еще использую их: S Как я уже упоминал, запрос на сервер работает, и я получить ответ, который мне нужен .... Я просто не получаю его в файл, потому что мне действительно нужно только номер из результата в строке {"id": 132234998736, "result": 232, "error": null } – wg15music

+0

Извините, не могу разобрать это. Командная строка работает и сохраняет ответ в файле. Он отвечает на то, о чем вы просили. Теперь вы, кажется, меняете вопрос ... –

+0

Да, это кажется странным .... также не возникает ошибки при запуске этого, но если я попытаюсь открыть файл, он не сможет найти файл ... это действительно wierd ... – wg15music

Смежные вопросы