前提
CakePHPで作成したログイン認証付きWebサーバがあります。
その中でPOSTデータを受け取って適当な文字をレスポンスとして返すシンプルなメソッドを用意しています。
実現したいこと
C++でWebサーバにHTTPリクエストしたとき、Authorization Headerを付けてPOSTしたく、その為のC++のコードを書きたいです。
Postmanでは通信ができるので、それをC++でも同じように行おうとしています。
試したこと
Postmanでは以下のように認証キーを設定することで正常にリクエストが返ります。
- メソッド:POST
- URL:http://localhost/testapp~~~
- AuthタブのType:Api Key
- AuthタブのKey:xxx
- AuthタブのValue:yyy
- AuthタブのAdd to:Header
該当のソースコード
C++のリクエスト部分は以下のように記述しています。
urlやpostdata等記述にない変数がありますが、定義済みとしてお読み下さい。
ここにcurl_easy_setopt(curl, CURLOPT_HTTPHEADER, 何かしらの値)を追記することで認証が通ると認識していますが、記述方法が分からない状態です。
// URL curl_easy_setopt(curl, CURLOPT_URL, url); // POSTデータまわりの設定 curl_easy_setopt(curl, CURLOPT_POST, 1); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata); curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(postdata)); // HTTPリクエストの結果辺りの設定 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callBackFunk); curl_easy_setopt(curl, CURLOPT_WRITEDATA, (string *)&chunk); curl_easy_setopt(curl, CURLOPT_PROXY, ""); // POST res = curl_easy_perform(curl); curl_easy_cleanup(curl); //この後ターミナルにレスポンスを表示していく
エラー
該当のソースコードのまま実行すると、401エラーが返ります。
また、PostmanでもAPI keyを設定していなければ401エラーが返ります。
回答1件
あなたの回答
tips
プレビュー