Heim > php教程 > php手册 > Hauptteil

PHP调用小黄鸡 api post发送

WBOY
Freigeben: 2016-06-06 19:47:23
Original
1198 Leute haben es durchsucht

下面这段代码有涉及到io操作,因而bae,跟sae上不能试用。 可以参考后面的那个 curl版本。那个是通用的。不过显然下面这种IO操作的写法执行起来速度快一点~ 首先得声明我没进行过测试。 能抓取数据的话,很多事都很容易做到。不管是天气,地理信息之类的查询


下面这段代码有涉及到io操作,因而bae,跟sae上不能试用。  可以参考后面的那个 curl版本。那个是通用的。不过显然下面这种IO操作的写法执行起来速度快一点~

首先得声明我没进行过测试。

能抓取数据的话,很多事都很容易做到。不管是天气,地理信息之类的查询。  下面几种方法都是post发送取得回调的response内容。

<!-- index.php -->页面
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php function do_post_request($url, $data, $optional_headers = null)
  {
     $params = array('http' => array(
                  'method' => 'POST',
                  'content' => $data
               ));
     if ($optional_headers !== null) {
        $params['http']['header'] = $optional_headers;
     }
     $ctx = stream_context_create($params);
     $fp = @fopen($url, 'rb', false, $ctx);
     if (!$fp) {
        throw new Exception("Problem with $url, $php_errormsg");
     }
     $response = @stream_get_contents($fp);
     if ($response === false) {
        throw new Exception("Problem reading data from $url, $php_errormsg");
     }
     return $response;
  }
  function simi($value="Love"){
  	$url = 'http://www.xiaohuangji.com/ajax.php';
  	$postdata = array("para"=>$value); 
  	$postdata = http_build_query($postdata);
  	return do_post_request($url,$postdata);
  }echo simi("Love");
?>
Nach dem Login kopieren


调用这个这段的代码就是
// 装载小黄鸡函数
// @author ipqhjjybj
// @data  2013.11.30
// 调用方法:
// $result = simi($str);
// $result String类型  是返回的内容文本
// $str String类型  是要回答的内容
Nach dem Login kopieren


也可以用CURL来做 


下面这段代码是可以直接放在任意的一个bae或者sae 上,可以做微信公众平台开发,也可以做其他的交流途径。 Curl的写法在哪里都是支持的~


function curl_post($url, array $post = NULL, array $options = array()) 
{ 
    $defaults = array( 
        CURLOPT_POST => 1, 
        CURLOPT_HEADER => 0, 
        CURLOPT_URL => $url, 
        CURLOPT_FRESH_CONNECT => 1, 
        CURLOPT_RETURNTRANSFER => 1, 
        CURLOPT_FORBID_REUSE => 1, 
        CURLOPT_TIMEOUT => 4, 
        CURLOPT_POSTFIELDS => http_build_query($post) 
    ); 

    $ch = curl_init(); 
    curl_setopt_array($ch, ($options + $defaults)); 
    if( ! $result = curl_exec($ch)) 
    { 
        trigger_error(curl_error($ch)); 
    } 
    curl_close($ch); 
    return $result; 
} 

function simi($value = "Love")
{
	$post_data = array ("para"=>$value) ;
    $url ='http://www.xiaohuangji.com/ajax.php';
    return curl_post($url,$post_data);
}
// 调用方法
// $result = simi("你的数据");
echo simi("Love");
Nach dem Login kopieren

也可以这样
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php function simi($value = "Love"){
    $post_data = array ("para"=>$value) ;
    $url ='http://www.xiaohuangji.com/ajax.php';
    $o = "" ;
    foreach ( $post_data as $k => $v )
    {
        $o .= "$k=" . urlencode ( $v ) . "&" ;
    }
    $post_data = substr ( $o , 0 ,- 1 ) ;
    $ch = curl_init () ;
    curl_setopt ( $ch , CURLOPT_POST , 1 ) ;
    curl_setopt ( $ch , CURLOPT_HEADER , 0 ) ;
    curl_setopt ( $ch , CURLOPT_URL , $url ) ;
    curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1); // 这句还是需要的。。
//为了支持cookie 
//curl_setopt ( $ch , CURLOPT_COOKIEJAR , ' cookie.txt ' ) ;
    curl_setopt ( $ch , CURLOPT_POSTFIELDS , $post_data ) ;
    curl_setopt ( $ch , CURLOPT_USERAGENT , "ipqhjjybj's curl Example beta");
    $result = curl_exec ( $ch ) ;
    curl_close( $ch );
    $result = substr($result,0,-1);
    return $result;
}
// 调用方法
// $result = simi("你的数据");
echo simi("Love");
?>
Nach dem Login kopieren


解释下来源。用google抓包后是:



  1. Request URL:

    http://www.xiaohuangji.com/ajax.php

  2. Request Method:

    POST

    1. FormData
      para=TT


    Response 就直接是内容了

所以。。很简单。。


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!