PHP에서 Http 요청(GET/POST)을 보내는 방법은 file_get_contents() 함수, fopen() 함수, cURL 확장 등 여러 가지가 있지만 서버 상황이 다르기 때문에 모든 상황에 호환되지 않을 수 있습니다. , 이렇게 생각해보세요. HTTP 요청을 보내려면 일련의 판단을 거쳐야 하는데, 이는 매우 번거로운 작업입니다.
그러나 WordPress에서는 호환성을 확인하는 데 도움이 되는 WP_Http 클래스를 제공하므로 HTTP 요청 전송을 완료하려면 내부에서 함수를 호출하기만 하면 됩니다. 아래에서는 이 클래스에서 일반적으로 사용되는 기능을 간략하게 소개하겠습니다.
GET 요청 보내기
/** *使用 WP_Http 类发送简单的 GET 请求 *http://www.endskin.com/wp_http/ */ $http = new WP_Http; $result = $http->request( 'http://www.endskin.com' );
위 코드는 $result 변수에 요청 대상 정보를 저장합니다. $result는 다음 키를 갖는 배열입니다.
즉, 대상의 내용은 $result['body']
POST 요청 보내기
POST 요청을 보내야 하는 경우 다음을 수행해야 합니다. WP_Http->request()를 사용합니다. 두 번째 매개변수는 다음과 같습니다.
/** *使用 WP_Http 类发送简单的 POST 请求 *http://www.endskin.com/wp_http/ */ $http = new WP_Http; $post = array( 'name' => '斌果', 'blog' => 'http://www.bgbk.org' ); $result = $http->request( 'http://www.endskin.com', array( 'method' => 'POST', 'body' => $post ) );
반환된 $result 변수 내용은 위의 GET 요청을 참조하세요.
인증이 필요한 POST 요청
일부 RESTFul API에 일부 정보를 제출하려면 먼저 사용자 이름과 비밀번호 쌍이 포함된 base64 인코딩 문자열을 보내야 합니다. . API의 세부 내용은 다음과 같습니다.
// You would edit the following: $username = 'denishua'; // login $password = '123456'; // password $message = "I'm posting with the API"; // Now, the HTTP request: $api_url = 'http://your.api.url/update.xml'; $body = array( 'status' => $message ); $headers = array( 'Authorization' => 'Basic '.base64_encode("$username:$password") ); $request = new WP_Http; $result = $request->request( $api_url , array( 'method' => 'POST', 'body' => $body, 'headers' => $headers ) );
워드프레스에서 WP_Http 클래스를 추가한 후 Snoopy PHP 클래스를 폐기했습니다. 따라서 플러그인을 작성할 때 권장됩니다. WordPress의 경우 WP_Http 요청을 사용해 보세요.
이상은 관련 내용을 포함하여 WordPress에서 http 요청 보내기를 구현하기 위한 관련 기능에 대한 분석을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.