PEARのHTTP_Requestを使ってアクセスするサンプル
< ?php require_once 'HTTP/Request.php'; //PEARクラス呼び出し $url = 'http://xxxxxxx.co.jp/login.asp'; $user = "[あなたのID]"; $pass= "[あなたのpassword]"; $useragent = "[ユーザーエージェント]"; $rq = new HTTP_Request($url); $rq->setMethod(HTTP_REQUEST_METHOD_POST); $rq->addPostData('userid', $user); $rq->addPostData('password', $pass); $rq->setHttpVer('1.1'); $rq->addHeader('User-Agent', $useragent); if ( PEAR::isError($rq->sendRequest()) ) { $err_msg = 'ログイン認証 sendRequest()でエラー発生したため、処理を中断しました。'; echo $err_msg; exit; } if ( $rq->getResponseCode() <> '200' ) { $err_msg = 'ログイン認証 リターンコードが200以外だったため、処理を中断しました。'; echo $err_msg; exit; } $getHtml = $rq->getResponseBody(); echo $getHtml; ?>
このHTTP_Requestの使い方をマスターすると、いろいろなところで有効活用できそうです。
参考資料
・HTTP_Requestでアクセスする セッション編
・PHPでのHTTPアクセスを超簡単に行える「PEAR::HTTP_Request」
こんにちは
komarukunです。
早速ですが、私は今同じようなことを作っています。
クリック証券のAPI、cakephpの環境で開発を行っています。FXのAPIではないですが、株の売買システムを作っています。やり方がだめなのかわからないですが、ログインと認証が成功した後、値の一覧をアクセスすると以下の結果が返されました。
NG Out Of Session
Cookieをヘッダーに入れましたし、認証も取ったが前に進められないです。セッションが使えないのか、phpの設定で確認し、使用可能な設定になっています。
ちなみに、今ローカルサーバ(テストサーバ)での検証を行っています。
もし解決方法はご存じであれは教えて頂けますか?
> komarukunさん
コメントありがとうございます。
実際にプログラムソースを見ていないのでなんとも判断しかねるところではありますが、ヘッダに入れたCookie情報が怪しそうです。
こんにちはKomarukunです。
返信ありがとうございます。
Cookie情報としてはクリック証券に指定した(サンプル)JSESSIONID=AAAAAAAだけです。その他の情報をセットする必要はありますでしょうか?
宜しくお願い致します。
> komarukunさん
株の場合は知りませんが、FXの場合ですと、JSESSIONIDの他にFX-LB=XXXXXXXXを渡します。
よく仕様書を確認してみてはいかがでしょうか。