2016-06-14 26 views
1

Breif私が達成しようとしていることの説明。だから私はCrestrons Simpl +ソフトウェアを使って作業しています。私の仕事は、QT Proというサウンドマスキングシステム用のモジュールを作ることです。現在、QT ProにはHTTP経由で制御できるAPIがあります。 HTTP経由でQT Proとの接続を確立する方法が必要です(必要なものはすべて持っています、IP、ユーザー名、パスワード)。ポート80経由でHTTPコマンドを送信する方法

何が問題ですか?私はこの言語で作業を始めました。残念ながら、私が望むほど多くのドキュメントはありません。それ以外の場合は私はここにいません。私はポート80でTCP経由でソケット接続を作成する必要があることを知っています。私はそれを介して送信するはずのものはわかりません。ここで

は一例です: http://username:[email protected]/cmd.htm?cmd=setOneZoneData&ZN=Value&mD=Value & MN =値& auxA =値& auxB =値& autoR =値

私はURLボックスにこれを入れて、正確にそれを埋めるためにした場合。私が指定した値が変更されます。全体を送るはずですか?またはcmd.htmの直後ですか?それとも、私はデータを送信するはずの別の方法がありますか?私はTCP/IPモジュールから遠ざかっていきたいので、これをすべて同じモジュール内に保存することができます。

ありがとうございました。

答えて

0

あなたはHTTP基本認証を使用する必要がある場合、また

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ= 

のようなヘッダが含ま

GET /cmd.htm?cmd=setOneZoneData&ZN=Value&mD=Value&mN=Value&auxA=Value&auxB=Value&autoR=Value HTTP/1.1 
Host: address 
Connection: close 

(改行のカップルと終わり)

を送信gibberishはbase64でエンコードされたusername:passwordのバージョンです。

しかし、確かにそこにHTTP接続を開くためのメカニズムはありますか?このようなヘッダを盲目的に投げ捨て、レスポンスがあなたが期待していることを期待していれば、頑強ではないと言えます。

はあなたの要求と応答で何が起こっているかを確認するには、素晴らしいツールはnetcatをである(そのことについてまたはtelnet、。)

ポート80上のサーバーaddressに接続するためにnc address 80を行い、その後、あなたのHTTPリクエストを貼り付けます:

GET /cmd.htm HTTP/1.1 
Host: address 
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ= 
Connection: close 

戻って来るものを参照してください。何かが戻ってくるはずです。

何か動作したときにブラウザが送信しているリクエストを確認するには、nc -l -p 8080のように聞くことができます。 その後、ブラウザーにURLの残りの部分をlocalhost:8080に転送すると、送信された要求が表示されます。 (その後、ブラウザを使ってレスポンスをどのように処理するかを調べることができます)。

+0

ソケット接続を開くための関数があります。残りは私のものです。私はもっ​​と簡単な方法があることを望む。今の唯一の問題は、WWW認証を使用しなければならないという事実です。私はそれのためのヘッダーを使用してみました。しかし、QTProからの応答はありません。これは私が持っているものです GET /zonedata_1.htm HTTP/1.1 ホスト:192.168.10。70 Authorization:Basic YWRtaW46c2VjcmV0 接続:閉じる –

+0

@DanielB:デバッグにnetcat(またはtelnet)を使ってみてください。私は答えにいくつかの情報を追加しました。 – Kundor

+0

私はトラフィックを監視するためにwiresharkを使用していますので、何かが戻ってくるかどうか確認してください。しかし、私はQT Proから一つのことを得ることさえできません。私は1回の回答を得ることができました。しかし、この効果を再現するのに失敗しています。途中で助けてくれてありがとう。 –

関連する問題