wordpressでリクエストを送信する場合には下記の関数が使用できます。
- wp_remote_get
- wp_remote_post
- wp_remote_request
説明
wp_remote_*( string $url, array $args = array() )
パラメーターはそれぞれ共通ですが、'method' オプション未指定の場合、wp_remote_getはデフォルトでGETで、wp_remote_postはPOSTとなります。
パラメーター
$url
リクエスト先のURLを指定
$args
省略した場合のデフォルト値は array()
パラメーターのキー | 説明 |
---|---|
'method' | HTTPメソッドを指定 'GET', 'POST', 'HEAD', 'PUT', 'DELETE', 'TRACE', 'OPTIONS', or 'PATCH' が指定できる。 |
'timeout' | リクエストのタイムアウト値を秒で指定。デフォルトは5秒 |
'redirection' | リダイレクトを許容する最大値。デフォルトは5 |
'httpversion' | 使用するHTTPプロトコルのバージョンを指定。1.0、1.1を許容。デフォルトは、1.0 |
'user-agent' | ユーザーエージェントを指定。 デフォルトは 『'WordPress/' . get_bloginfo( 'version' ) . '; ' . get_bloginfo( 'url' ).』 |
'reject_unsafe_urls' | (bool) wp_http_validate_url() 関数で取得できないURLを弾く。デフォルトはfalse |
'blocking' | trueにすると同期実行となる。falseにすると非同期実行となり、レスポンスの成功可否のみ受け取り、レスポンスは取得できない。デフォルトはtrue |
'headers' | リクエストヘッダーを指定する。 |
'cookies' | (array) Cookieを配列で指定する。 |
'body' | (string|array) リクエストボディーを指定する。デフォルトはnull |
'compress' | (bool) リクエスト送信事にリクエストボディーを圧縮するかを指定。デフォルトはfalse |
'decompress' | (bool) 圧縮されたレスポンスを解凍するかどうかを指定。falseに設定した場合は個別に解凍処理必要。 |
'sslverify' | (bool) SSLのエラーチェックをするかどうか指定。デフォルトはtrue。開発環境などでオレオレ証明書を使用している場面ではfalseに指定する必要があるかも。 |
'sslcertificates' | 証明書の絶対パス |
'stream' | ファイルへのストリームハンドルを指定。未指定の場合は破棄される。デフォルトはfalse。 |
'filename' | ストリームハンドルの内容を書き込むファイルのパスを指定 |
'limit_response_size' | レスポンスの制限サイズを指定。デフォルトはnull。 |
Cookieの指定方法については、ドキュメント読んだだけでは不明瞭なので、別途情報をまとめてようと思います(その場で使用していても、あとで使い方忘れちゃいそうですよね)。というか、wordpressの公式ドキュメント若干不親切だなあと思いました。
参考
https://developer.wordpress.org/reference/classes/WP_Http/request/