我怎么能在PHP / http帖子中这样做?

时间:2011-03-18 02:09:07

标签: php api http-post

我已经获得了API文档,由于没有可以连接的URL,我没有得到它?

http://support.planetdomain.com/index.php?_m=downloads&_a=viewdownload&downloaditemid=14&nav=0

我更喜欢在PHP中这样做..

如何运行10次迭代循环,检查域是否可用,是否有响应,然后执行register命令并退出脚本(使用文档中提供的代码)。

谢谢。

1 个答案:

答案 0 :(得分:0)

对于基础知识,我建议使用cURL通过HTTP POST访问资源。

我把它放到一个函数中:

function api_call($url,$data,$timeout=20)
  {
  $response=false;

  $ch=curl_init($url);
  curl_setopt_array($ch,array(CURLOPT_RETURNTRANSFER=>true,CURLOPT_NOBODY=>false,CURLOPT_TIMEOUT=>$timeout,CURLOPT_FORBID_REUSE=>1,CURLOPT_FRESH_CONNECT=>1,CURLOPT_POST=>true));


  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//this is an array containing the data you're sending them - an associative array describing which call.

  //data example:
  //array('operation'=>'user.verify','admin.username'=>'you','admin.password'=>'pass','reseller.id'=>'xxx') 

  $response=curl_exec($ch);

  $status_code=intval(curl_getinfo($ch,CURLINFO_HTTP_CODE));
  curl_close($ch);

  return array('status'=>$status_code,'url'=>$url,'data'=>$response);
  }

但是,您需要提供一个URL。 Lucanos在评论中指出它是“api.planetdomain.com/servlet/TLDServlet”。

http://support.planetdomain.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=77

顺便说一句,我只使用cURL进行GET请求,所以我可能会错过一些关于如何正确执行POST的详细信息。不过我试着填写它。

你问“如何运行10迭代循环,检查域是否可用,如果响应可用,则执行register命令并退出脚本(使用文档中提供的代码)。”< / p>

嗯,这里有一些与有效PHP混合的伪代码。我不知道你知道的域网API,所以这不会按原样运行,但它应该让你对它有一个体面的想法。

 for($i=0;$i<10;$i++)
    {
    //set up the domain check call
    $domains=array('futunarifountain.co.uk','megahelicopterunicornassaultlovepageant.ly');
    $domain_check_call=array('domain.name'=>$domains[$i]);
    $domain_info=api_call($dp_base_url,$domain_check_call);

    $info=json_decode($domain_info,true);//IF they use JSON and not XML or something

    if($info['domain']['status']=='available')
        {
        $register_call=something();//make the API calls to register the domain, similar to the above
        if($register_call['success']){ exit();/*or whatever*/ }
        }

    }

希望有助于您走上正轨。