>  기사  >  백엔드 개발  >  WordPress에서 http 요청 전송 관련 기능 분석

WordPress에서 http 요청 전송 관련 기능 분석

WBOY
WBOY원래의
2016-07-29 09:08:221023검색

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는 다음 키를 갖는 배열입니다.

  • headers: 반환되는 헤더 정보가 배열
  • body: 대상의 내용, 브라우저에서 직접 보는 것과 동일
  • 응답 : 반환된 코드, 요청이 성공하면 array('code'=>200, 'message'=>'OK')
  • cookies: 쿠키 정보, 배열입니다

즉, 대상의 내용은 $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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.