常に望んでいた体を手に入れる

応答ボディを取得するには、wp_remote_retrieve_body() 関数を使用します。この関数は、wp_remote_get() 関数からの応答という1つのパラメータだけを取ります。

  1. $response = wp_remote_get( 'https://api.github.com/users/wordpress' );
  2. $body = wp_remote_retrieve_body( $response );

前の例からの $response を使用すると、$body は次のようになります:

  1. {
  2. "login": "WordPress",
  3. "id": 276006,
  4. "node_id": "MDEyOk9yZ2FuaXphdGlvbjI3NjAwNg==",
  5. "avatar_url": "https://avatars0.githubusercontent.com/u/276006?v=4",
  6. "gravatar_id": "",
  7. "url": "https://api.github.com/users/WordPress",
  8. "html_url": "https://github.com/WordPress",
  9. "followers_url": "https://api.github.com/users/WordPress/followers",
  10. "following_url": "https://api.github.com/users/WordPress/following{/other_user}",
  11. "gists_url": "https://api.github.com/users/WordPress/gists{/gist_id}",
  12. "starred_url": "https://api.github.com/users/WordPress/starred{/owner}{/repo}",
  13. "subscriptions_url": "https://api.github.com/users/WordPress/subscriptions",
  14. "organizations_url": "https://api.github.com/users/WordPress/orgs",
  15. "repos_url": "https://api.github.com/users/WordPress/repos",
  16. "events_url": "https://api.github.com/users/WordPress/events{/privacy}",
  17. "received_events_url": "https://api.github.com/users/WordPress/received_events",
  18. "type": "Organization",
  19. "site_admin": false,
  20. "name": null,
  21. "company": null,
  22. "blog": "https://wordpress.org/",
  23. "location": null,
  24. "email": null,
  25. "hireable": null,
  26. "bio": null,
  27. "twitter_username": null,
  28. "public_repos": 50,
  29. "public_gists": 0,
  30. "followers": 0,
  31. "following": 0,
  32. "created_at": "2010-05-13T22:42:10Z",
  33. "updated_at": "2020-05-22T14:27:02Z"
  34. }

応答コードを取得する

取得が成功したことを確認するために、応答コードを確認したいかもしれません。これは、wp_remote_retrieve_response_code() 関数を介して行うことができます:

  1. $http_code = wp_remote_retrieve_response_code( $response );

成功した場合、$http_code には 200 が含まれます。そうでない場合、いくつかのHTTPステータスコードが含まれます。

特定のヘッダーを取得する

特定のヘッダー、例えば last-modified を取得したい場合は、wp_remote_retrieve_header() を使用できます。この関数は2つのパラメータを取ります

  • 1. $response – GET コールからの応答
  • 2. $header – 取得するヘッダーの名前

last-modified ヘッダーを取得するには:

  1. $last_modified = wp_remote_retrieve_header( $response, 'last-modified' );

wp_remote_retrieve_headers() 関数を使用して、配列内のすべてのヘッダーを取得することもできます。

基本認証を使用して取得する

より安全なAPIは、さまざまなタイプの認証の1つ以上を提供します。一般的であるが、あまり安全ではない認証方法はHTTP基本認証です。これは、wp_remote_get() 関数の2番目のパラメータに「Authorization」をバイパスすることでWordPressで使用できます。また、他のHTTPメソッド関数でも使用できます。

  1. $args = array(
  2. 'headers' => array(
  3. 'Authorization' => 'Basic ' . base64_encode( YOUR_USERNAME . ':' . YOUR_PASSWORD )
  4. )
  5. );
  6. wp_remote_get( $url, $args );

認証についての詳細