WordPress_php 스킬에서 http 요청 전송 관련 기능 분석

WBOY
풀어 주다: 2016-05-16 20:01:22
원래의
872명이 탐색했습니다.

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

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

즉, 대상의 내용은 $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 ) );

로그인 후 복사

WordPress는 WP_Http 클래스를 추가한 후 Snoopy PHP 클래스를 포기했습니다. 따라서 WordPress용 플러그인을 작성할 때 WP_Http를 사용하여 HTTP 요청을 수행하는 것이 좋습니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿