0

私はこれらすべてにちょっと慣れていないので、何か完全に間違っているかどうか教えてください.

私は自分のラズベリー pi でいくつかの gpio を行っています。現在、gpio ピンを Web インターフェイス経由で制御できるように何かを作成しています。私がこれを行っている方法の 1 つは、bash CGI スクリプトを使用してピンを制御し、ブラウザーから実行することです。

これまでのところ、これを機能させる唯一の方法.../cgi-bin/gpio1.cgiは、コードを含むページ " " などをブラウザでロードすることです。

#!/bin/bash
echo "Content-type: text/html"
echo ""
...gpio stuff...

これは機能しますが、ブラウザーはこのスクリプトによって作成された空白のページに移動します。

Web ページを離れずにこれらのスクリプトを実行する方法はありますか?そのため、スクリプトは HTML を記述せず、代わりに実際の gpio に焦点を当てていますか?

ありがとう

4

1 に答える 1

1

これを試して:

#!/bin/bash
echo "Status: 204 No Content"
...gpio stuff...

HTTP 応答はステータス行で開始する必要があります。CGI で指定されていない場合、Web サーバーは通常、ステータス「200 Ok」を追加します。そのステータスには、新しい Web ページを形成するレスポンス ボディが付随している必要があります。

必要なステータスは です204。これは、リクエストが満たされたが応答がなく、ブラウザが同じページに留まることを示します。通常、これはPOSTリクエストではなくリクエストへのレスポンスGETですが、とにかく動作するはずです。応答は応答本文を必要としないため204(実際、許可されていません)、ステータス行の後に空白行を出力する必要はありませんが、スクリプトの実行に時間がかかる場合は必要になる場合があります。 .

于 2013-06-13T04:16:27.197 に答える