PHP HTTP請求

來源:互聯網
上載者:User

標籤:htm   文檔   php   url   method   fwrite   creat   encode   使用方法   

stream_context_create

1、curl仍然是最好的HTTP庫,沒有之一。 可以解決任何複雜的應用情境中的HTTP 要求
2. 檔案流式的HTTP請求比較適合處理簡單的HTTP POST/GET請求,但不適用於複雜的HTTP請求
3. PECL_HTTP擴充寫代碼更加簡潔,省事, 但成熟度等級不好,編程介面不統一,文檔和執行個體匱乏。 

 

PHP類比發送HTTP請求:

1、file_get_contents 發送get請求

<?php/** * 發送post請求 * @param string $url 請求地址 * @param array $post_data post索引值對資料 * @return string */function send_post($url, $post_data) {    $postdata = http_build_query($post_data);    $options = array(        ‘http‘ => array(            ‘method‘ => ‘POST‘,            ‘header‘ => ‘Content-type:application/x-www-form-urlencoded‘,            ‘content‘ => $postdata,            ‘timeout‘ => 15 * 60 // 逾時時間(單位:s)        )    );    $context = stream_context_create($options);    $result = file_get_contents($url, false, $context);    return $result;}

$post_data = array(‘username‘ => ‘abcdef‘,‘password‘ => ‘123456‘);send_post(‘http://xxx.com‘, $post_data);
 

 

2、通過CURL發送get請求

<?php$ch=curl_init(‘http://www.xxx.com/xx.html‘);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);$output=curl_exec($ch);$fh=fopen("out.html",‘w‘);fwrite($fh,$output);fclose($fh);

3、通過fsocket發送get請求

/** * Socket版本 * 使用方法: * $post_string = "app=socket&amp;version=beta"; * request_by_socket(‘blog.snsgou.com‘, ‘/restServer.php‘, $post_string); */function request_by_socket($remote_server,$remote_path,$post_string,$port = 80,$timeout = 30) {$socket = fsockopen($remote_server, $port, $errno, $errstr, $timeout);if (!$socket) die("$errstr($errno)");fwrite($socket, "POST $remote_path HTTP/1.0");fwrite($socket, "User-Agent: Socket Example");fwrite($socket, "HOST: $remote_server");fwrite($socket, "Content-type: application/x-www-form-urlencoded");fwrite($socket, "Content-length: " . (strlen($post_string) + 8) . "");fwrite($socket, "Accept:*/*");fwrite($socket, "");fwrite($socket, "mypost=$post_string");fwrite($socket, "");$header = "";while ($str = trim(fgets($socket, 4096))) {$header .= $str;}$data = "";while (!feof($socket)) {$data .= fgets($socket, 4096);}return $data;}

 

PHP HTTP請求

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.