Не удается выполнить фоновый HTTP-запрос HTTPie с помощью сценария `&` в .sh - PullRequest
0 голосов
/ 17 ноября 2018

Как получается, что это работает из приглашения BASH:

/testproj> http http://localhost:5000/ping/ &
[1] 10733
(env)
/testproj> HTTP/1.0 200 OK
Content-Length: 2
Content-Type: application/json
Date: Sat, 17 Nov 2018 19:27:01 GMT
Server: Werkzeug/0.14.1 Python/3.6.4

{}

..., но завершается ошибкой при выполнении в .sh:

/testproj> cat x.sh
http http://localhost:5000/ping/ &
(env)
/testproj> ./x.sh
(env)
/testproj> HTTP/1.0 405 METHOD NOT ALLOWED
Allow: GET, HEAD, OPTIONS
Content-Length: 178
Content-Type: text/html
Date: Sat, 17 Nov 2018 19:29:00 GMT
Server: Werkzeug/0.14.1 Python/3.6.4
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>405 Method Not Allowed</title>



<h1>Method Not Allowed</h1>
<p>The method is not allowed for the requested URL.</p>

?

РЕДАКТИРОВАТЬ: http это HTTPie

РЕДАКТИРОВАТЬ: type http дает http is hashed (/testproj/env/bin/http)

РЕДАКТИРОВАТЬ: можно воспроизвести ошибку только с http http://www.google.com </dev/null & (Спасибо @ e36freak)

РЕДАКТИРОВАТЬ: из e36freak на IRC:

, похоже, проблема с stdin
Я получаю ту же ошибку только с http http://www.google.com </dev/null
http хочет stdin чтобы быть прикрепленным к tty, он выглядит как
по какой-либо причине
не смог найти его на странице справки, но я уверен, что он там

1 Ответ

0 голосов
/ 18 ноября 2018

Вам больше всего нравится включать параметр --ignore-stdin, чтобы httpie не пытался его прочитать.Смотри: https://httpie.org/doc#scripting

...