トップへ(mam-mam.net/)

cURLでHTTP、HTTPS通信する

検索:

「cURLでHTTP、HTTPS通信する」

phpのcURLでHTTP、HTTPS通信するには。
GET、POSTを行うには。

回答

windowsの場合
  (1)php.iniファイルを以下のように編集する、
  ;extension=curl
       ↓
  extension=curl.dll

  (2)PHPインストール先フォルダにある「libssh2.dll」ファイルを
     パスの通ったフォルダ(C:\Windows\System32   等)にコピーする。

  (3)apacheを再起動する。

ソース

//メソッドGETの場合
<?php
mb_internal_encoding("UTF-8");
$ch = curl_init();
//GETする値
$get_param = '?get1='.curl_escape($ch,'GET値1').'&get2='.curl_escape($ch,'GET値2');
//基本認証が必要な場合
$hds = ["Authorization: Basic ".base64_encode('ユーザー'.':'.'パスワード'),];
curl_setopt($ch, CURLOPT_URL, 'https://通信URL/'.$get_param);//URL
curl_setopt($ch, CURLOPT_HTTPGET, true);           //メソッドがGET
curl_setopt($ch, CURLOPT_HTTPHEADER, $hds);       //基本認証ヘッダー
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  //自己証明書の場合
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  //自己証明書の場合
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //curl_exec()の返り値を文字列で返してもらう
curl_setopt($ch, CURLOPT_TIMEOUT, 10);            //タイムアウト秒
//エージェントを入れる場合
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X)');
$res = curl_exec($ch);




//メソッドPOSTの場合
mb_internal_encoding("UTF-8");
//POST値
$content = http_build_query(array('post1' => 'ポスト値1', 'post2' => 'ポスト値2'));
$ch = curl_init();
//基本認証が必要な場合、およびコンテント長ヘッダーの設定
$hds = [
  "Authorization: Basic ".base64_encode('ユーザー'.':'.'パスワード'),
  "Content-length: " . strlen($content),
];
curl_setopt($ch, CURLOPT_URL, 'https://通信URL/');//URL
curl_setopt($ch, CURLOPT_POST, true);             //メソッドPOST
curl_setopt($ch, CURLOPT_HTTPHEADER, $hds);       //基本認証、コンテント長ヘッダー
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  //自己証明書の場合
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  //自己証明書の場合
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //curl_exec()の返り値を文字列で返してもらう
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);   //POST値設定
curl_setopt($ch, CURLOPT_TIMEOUT, 10);            //タイムアウト秒
//エージェントを入れる場合
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X)');
$res = curl_exec($ch);