curl - перенаправить файл формы - PullRequest
0 голосов
/ 18 января 2010

Это работает:

 curl  --url http://someurl.tld  --form "apikey=39485730"

Это не:

 curl  --url http://someurl.tld  --form "apikey=<keyfile"

Ошибка: Неверные ключи API

В руководстве cURL (http://curl.haxx.se/docs/manpage.html) прямо указано

-F / - form (HTTP) Это позволяет curl эмулировать заполненную форму, в которой пользователь нажал кнопку отправки. [...] Чтобы часть содержимого была файлом, добавьте к имени файла знак @. Чтобы просто получить часть содержимого из файла, добавьте к имени файла символ <. Разница между @ и <заключается в том, что @ заставляет файл прикрепляться к сообщению в качестве файла, а <- создает текстовое поле и просто получает содержимое этого текстового поля из файла. </p>


FWIW: Если я использую --form "apikey = @ keyfile", я получаю ошибку: "Требуется ключ API". Это подтверждает, что @ определенно не так (что я в порядке). Но почему < не работает, и что с этим делать?

Похоже, что содержимое файла либо не передано, либо неправильно. Таким образом, я в четыре раза убедился, что в файле есть только ключ API (здесь: 39485730) и больше ничего.


Если важно, почему я пытаюсь это сделать:
Мне нужна эта команда curl в скриптах, и я не хочу помещать туда ключ API. Вместо этого он должен быть в ДОМЕ пользователя, который запускает этот сценарий, только для чтения, и никто другой.

Заранее благодарим вас за понимание ...: -)

1 Ответ

2 голосов
/ 19 января 2010

Я думаю, у вас может быть завершающий символ новой строки в keyfile. Вы можете проверить это с помощью:

xxd keyfile

В конце не должно быть 0a. Если есть, вы можете воссоздать ключевой файл без завершающего символа новой строки, например:

echo -n 39485730 > keyfile

и попробуйте снова с новым keyfile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...