Rumah pembangunan bahagian belakang tutorial php php实现httpclient类示例_PHP

php实现httpclient类示例_PHP

Jun 01, 2016 am 11:54 AM
httpclient

复制代码 代码如下:
httpClient::init($httpClient, $args = null);
$httpClient->get($url, $data = null, $cookie = null);
var_dump($httpClient->buffer);

复制代码 代码如下:

class httpClient {

 public $buffer = null;  // buffer 获取返回的字符串
 public $referer = null;  // referer 设置 HTTP_REFERER 的网址
 public $response = null; // response 服务器响应的 header 信息
 public $request = null;  // request 发送到服务器的 header 信息
 private $args = null;

 public static function init(&$instanceof, $args = array()) {
  return $instanceof = new self($args);
 }

 private function __construct($args = array()) {

  if(!is_array($args)) $args = array();
  $this->args = $args;
  if(!empty($this->args['debugging'])) {
   ob_end_clean();
   set_time_limit(0);
   header('Content-Type: text/plain; charset=utf-8');
  }

 }

 public function get($url, $data = null, $cookie = null) {

  $parse = parse_url($url);
  $url .= isset($parse['query']) ? '&'. $data : ( $data ? '?'. $data : '' );
  $host = $parse['host'];

  $header  = 'Host: '. $host. "\r\n";
  $header .= 'Connection: close'. "\r\n";
  $header .= 'Accept: */*'. "\r\n";
  $header .= 'User-Agent: '. ( isset($this->args['userAgent']) ? $this->args['userAgent'] : $_SERVER['HTTP_USER_AGENT'] ). "\r\n";
  $header .= 'DNT: 1'. "\r\n";
  if($cookie) $header .= 'Cookie: '. $cookie. "\r\n";
  if($this->referer) $header .= 'Referer: '. $this->referer. "\r\n";

  $options = array();
  $options['http']['method'] = 'GET';
  $options['http']['header'] = $header;

  $response = get_headers($url);
  $this->request = $header;
  $this->response = implode("\r\n", $response);
  $context = stream_context_create($options);
  return $this->buffer = file_get_contents($url, false, $context);

 }

 public function post($url, $data = null, $cookie = null) {

  $parse = parse_url($url);
  $host = $parse['host'];

  $header  = 'Host: '. $host. "\r\n";
  $header .= 'Connection: close'. "\r\n";
  $header .= 'Accept: */*'. "\r\n";
  $header .= 'User-Agent: '. ( isset($this->args['userAgent']) ? $this->args['userAgent'] : $_SERVER['HTTP_USER_AGENT'] ). "\r\n";
  $header .= 'Content-Type: application/x-www-form-urlencoded'. "\r\n";
  $header .= 'DNT: 1'. "\r\n";
  if($cookie) $header .= 'Cookie: '. $cookie. "\r\n";
  if($this->referer) $header .= 'Referer: '. $this->referer. "\r\n";
  if($data) $header .= 'Content-Length: '. strlen($data). "\r\n";

  $options = array();
  $options['http']['method'] = 'POST';
  $options['http']['header'] = $header;
  if($data) $options['http']['content'] = $data;

  $response = get_headers($url);
  $this->request = $header;
  $this->response = implode("\r\n", $response);
  $context = stream_context_create($options);
  return $this->buffer = file_get_contents($url, false, $context);

 }

}

httpClient::init($httpClient, array( 'debugging' => true , 'userAgent' => 'MSIE 15.0' ));
$httpClient->get('http://www.baidu.com', 'name=haowei');
echo $httpClient->request; // 获取 请求头部信息
echo $httpClient->response; // 获取 响应的头部信息
echo $httpClient->buffer; // 获取 网页内容

$httpClient->get('http://www.bitsCN.com/ServiceLogin/', 'hash='. $time, 'uid=1;users=admin;')

echo $httpClient->buffer;

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Hantar permintaan HTTP dan kendalikan respons menggunakan HttpClient dalam Java 11 Hantar permintaan HTTP dan kendalikan respons menggunakan HttpClient dalam Java 11 Aug 01, 2023 am 11:48 AM

Tajuk: Menghantar permintaan HTTP dan mengendalikan respons menggunakan HttpClient dalam Java11 Pengenalan: Dalam aplikasi Internet moden, komunikasi HTTP dengan pelayan lain adalah tugas yang sangat biasa. Java menyediakan beberapa alatan terbina dalam yang boleh membantu kami mencapai matlamat ini Yang terbaru dan disyorkan ialah kelas HttpClient yang diperkenalkan dalam Java11. Artikel ini akan memperkenalkan cara menggunakan HttpClient dalam Java11 untuk menghantar permintaan HTTP dan memproses respons,

Cara menggunakan http.Client dalam golang untuk operasi lanjutan permintaan HTTP Cara menggunakan http.Client dalam golang untuk operasi lanjutan permintaan HTTP Nov 18, 2023 am 11:37 AM

Cara menggunakan http.Client dalam golang untuk operasi lanjutan permintaan HTTP Pengenalan: Dalam pembangunan moden, permintaan HTTP adalah bahagian yang tidak dapat dielakkan. Golang menyediakan perpustakaan standard yang berkuasa, yang termasuk pakej http. Pakej http menyediakan struktur http.Client untuk menghantar permintaan HTTP dan menerima respons HTTP. Dalam artikel ini, kami akan meneroka cara menggunakan http.Client untuk melaksanakan operasi lanjutan pada permintaan HTTP dan memberikan contoh kod khusus.

Bagaimana untuk membandingkan pengalihan dan pemajuan permintaan menggunakan httpclient dalam Java Bagaimana untuk membandingkan pengalihan dan pemajuan permintaan menggunakan httpclient dalam Java Apr 21, 2023 pm 11:43 PM

Berikut ialah pengenalan: Dalam versi HttpClient4.x, kaedah permintaan dapatkan akan mengubah hala secara automatik, tetapi kaedah permintaan pos tidak akan mengubah hala secara automatik Ini adalah sesuatu yang perlu diberi perhatian. Kali terakhir saya membuat ralat ialah apabila saya menggunakan pos untuk menyerahkan borang untuk log masuk, tetapi tiada ubah hala automatik pada masa itu. Perbezaan antara pemajuan permintaan dan pengalihan semula 1. Ubah hala ialah dua permintaan dan kiriman semula ialah satu permintaan, jadi kelajuan kiriman semula adalah lebih pantas daripada hala semula. 2. Selepas ubah hala, alamat pada bar alamat akan berubah dan bertukar kepada alamat yang diminta untuk kali kedua Selepas pemajuan, alamat pada bar alamat tidak akan berubah dan akan kekal sebagai alamat yang diminta untuk kali pertama. 3. Pemajuan ialah tingkah laku pelayan dan pengalihan semula ialah tingkah laku pelanggan. Apabila mengubah hala, URL pada penyemak imbas berubah apabila memajukan, URL pada penyemak imbas kekal tidak berubah.

Bagaimana untuk menghantar permintaan HTTP menggunakan Java HttpClient Bagaimana untuk menghantar permintaan HTTP menggunakan Java HttpClient Apr 20, 2023 pm 11:49 PM

1. Import dependency org.apache.httpcomponentshttpclient4.5.3com.alibabafastjson1.2.58org.apache.httpcomponentshttpmime4.5.3org.apache.httpcomponentshttpcore4.4.13org.slf4jslf4j-api1.7.72 Gunakan kelas alat tukar ini dan permintaan pos Beberapa kaedah lulus parameter telah ditulis, termasuk mendapatkan parameter lulus bar alamat, mendapatkan parameter lulus params, parameter lulus params, pos

Hantar permintaan HTTP tak segerak dan kendalikan respons menggunakan HttpClient baharu dalam Java 11 Hantar permintaan HTTP tak segerak dan kendalikan respons menggunakan HttpClient baharu dalam Java 11 Jul 31, 2023 pm 02:24 PM

Hantar permintaan HTTP tak segerak dan respons proses menggunakan HttpClient baharu dalam Java 11 Dalam Java 11, kelas HttpClient baharu telah diperkenalkan, menyediakan fungsi berkuasa untuk menghantar permintaan HTTP dan memproses respons. Berbanding dengan HttpURLConnection sebelumnya, HttpClient baharu lebih mudah digunakan dan menyokong operasi tak segerak, menjadikannya lebih cekap untuk mengendalikan permintaan serentak. Artikel ini akan memperkenalkan cara menggunakan HttpCli baharu dalam Java11

Analisis contoh pengendalian ralat HttpClient di Java Analisis contoh pengendalian ralat HttpClient di Java May 08, 2023 am 11:07 AM

Nota 1. Permintaan tak segerak HttpClient mengembalikan CompletableFuture, dan kaedahnya yang luar biasa boleh digunakan untuk pemprosesan sandaran. 2. Tidak seperti WebClient, HttpClient tidak mempunyai pengecualian kod status 4xx atau 5xx Anda perlu mengendalikannya mengikut situasi anda sendiri, mengesan pengecualian kod status secara manual atau mengembalikan kandungan lain. Contoh@TestpublicvoidtestHandleException()throwsExecutionException,InterruptedException{HttpClientclient=Ht

Bagaimana untuk menyelesaikan ralat 'undefined: http.Client' dalam golang? Bagaimana untuk menyelesaikan ralat 'undefined: http.Client' dalam golang? Jun 24, 2023 pm 05:49 PM

Bahasa Go ialah bahasa pengaturcaraan yang cekap, fleksibel dan sangat serentak, jadi ia digunakan secara meluas dalam pengaturcaraan rangkaian dan pemprosesan serentak. Pelanggan HTTP ialah perpustakaan yang biasa digunakan dalam bahasa Go, tetapi semasa penggunaan, jika anda tidak berhati-hati, ralat "undefined: http.Client" akan muncul. Ralat seperti ini akan menyebabkan banyak masalah kepada pembangun Artikel ini akan membincangkan cara menyelesaikan masalah ini. Pertama, kita perlu memahami mekanisme import bahasa Go. Dalam Go, semua pakej perlu lulus

Gunakan fungsi http.Client untuk menghantar permintaan HTTP tersuai dan mendapatkan respons Gunakan fungsi http.Client untuk menghantar permintaan HTTP tersuai dan mendapatkan respons Jul 24, 2023 pm 11:06 PM

Tajuk: Gunakan fungsi http.Client untuk menghantar permintaan HTTP tersuai dan mendapatkan respons Dalam aplikasi rangkaian moden, kami selalunya perlu menghantar permintaan HTTP dan mendapatkan respons daripada pelayan. Pustaka standard dalam bahasa Go menyediakan pakej http yang berkuasa, di mana jenis http.Client merangkum fungsi menghantar permintaan HTTP. Artikel ini akan memperkenalkan cara menggunakan fungsi http.Client untuk menghantar permintaan HTTP tersuai dan mendapatkan respons pelayan. Pertama, kita perlu mengimport ht

See all articles