カテゴリー別

お絵描き、デザイン

写真、動画関連ソフト

アメーバピグ専用ソフト

ホームページ関連

画像処理

スキャナー用

SEO 関連

お楽しみ

その他

過去ログ

2017年08月08日(火)

http / https で php に接続

今日は、c++ コードから、http / https で
php に接続するテストコードを作成しました。

WinInet というライブラリーを使えばいいのですが、
真面目にやると、結構なコード量になります。

http / https の切り替え個所は 2 つ。

1 つ目は、InternetConnect で接続するポートを
INTERNET_DEFAULT_HTTP_PORT (http の場合)
INTERNET_DEFAULT_HTTPS_PORT (https の場合) にする。

2 つ目は、HttpOpenRequest のフラグに、
https の場合は、INTERNET_FLAG_SECURE を加える。

です。後は共通のコードで OK みたいですね。

で、フォームデーターをポストする部分ですが、ヘッダーで
Content-Type: application/x-www-form-urlencoded
を指定して、それっぽいデーターを送れば OK です。

現在のテストコードでは、
HttpAddRequestHeaders で、ヘッダーを指定してから
HttpSendRequest で、ポストデーターを書き込みでうまくいってます。

SendRequest にもヘッダーを指定する引数が
あるので、そこで指定してもよさそうです。

ところが、HttpSendRequest のかわりに、
HttpSendRequestEx してから、
InternetWriteFile でポストデーターを
書き込む方法がうまくいきません。

まぁ、うまくいく方法を使えばいいんですけど、
なんか釈然としないなー。

・・・

もちっと調べてみるかな。

・・・

追記
----
で、調べてみたら原因がわかりました。

php の方で、var_dump(getallheaders()); して
違いを見てみると、HttpSendRequestEx の方では、
Content-Length が 0 になってたので、
Write する予定のデーターサイズをヘッダーに加えると
あっさり、うまくいきました。

なるほどね。

ご意見・ご要望連絡窓口


コメント
コメントする