2016-09-30 4 views
0

(C++ REST SDK)が、私はこのようなコード場合:http_listenerでlocalhostアドレスを持つ特定のポートnumの上で聞くことができない私は郵便配達からの要求を受信するために使用されるHTTPサーバを構築するC++ REST SDKを使用し

http_listener listener(L"http://localhost/io"); 
listener.open().wait(); 

listener.support(methods::POST, [](http_request req) { 
}); 

ポストマンは、POSTメソッド、 にhttp://localhost/ioとそれに接続することができます。しかし、私は次のようにコーディングした場合:

http_listener listener(L"http://localhost:6000/io"); 

郵便配達はhttp://localhost:6000/ioとPOSTメソッドでそれに接続することはできません。 しかし、http_listener listener(L"http://localhost/io:6000"); のようなコードを投稿すると、POSTメソッドでhttp://localhost/io:6000に接続できます。私はリスナーにhttp://localhost:6000/ioをどうやって使うことができますか?私が仕事をしている別のプログラムは、常にhttp://localhost:6000/ioにhttpリクエストを送信するので、私のサーバーがこのアドレスでリッスンできるようにする必要があります。

http_listener listener(L"http://localhost:6000"); //doesn't work, too. 

しかし、ときに私はそれが私の作品http_listener listener(L"http://localhost:7000")またはhttp_listener listener(L"http://localhost:7000/io")のように、7000や8000のような、他のポートnum個に6000に変更。私はnetstat -a -bを使って、6000が別のプログラムで占有されているかどうかを確認しますが、6000は無料です。

+1

「http:// localhost/iotresponse:6000」がポート80(デフォルト)に接続していて、6000ではないと信じています。 – Pawel

+0

@Pawel「http:// localhost:6000/iotresponse」について教えてください。ポート80にも接続していますか?私の要求は "http:// localhost:6000/iotresponse"を聞いています – firstaccount

+0

いいえ、http_listener(L "localhost:6000") 'はポート6000でリッスンする必要があります。なぜポート6000が動作しないのか分かりません他のポートも機能します。私はそれが他の何かがポート6000を使用していたからだと思ったが、netstatはポート6000が取られていることを知らなかったので、わからない – Pawel

答えて

0

私は答えがあると思います。私はこの同じ問題を経て、私は別の未使用ポートと「サポート」機能の異なる使用を使用:

http_listener listener(L"http://localhost:11369/"); 
listener->open().wait(); 
listener->configuration() ; 

listener->support(methods::GET, 
     std::tr1::bind(&CMFCApplication1Dlg::handle_get, 
      this, 
      std::tr1::placeholders::_1)); 
listener->support(methods::PUT, 
     std::tr1::bind(&CMFCApplication1Dlg::handle_put, 
      this, 
      std::tr1::placeholders::_1)); 
listener->support(methods::POST, 
     std::tr1::bind(&CMFCApplication1Dlg::handle_post, 
      this, 
      std::tr1::placeholders::_1)); 
listener->support(methods::DEL, 
     std::tr1::bind(&CMFCApplication1Dlg::handle_delete, 
      this, 
      std::tr1::placeholders::_1)); 

私はC++ MFCアプリでhttp_listenerを使用しています。だからあなたとは違うでしょう。ハンドラが受け取ったリクエストに答えるための助けが必要な場合は、私に教えてください。 よろしくお願いいたします。

関連する問題