Как я могу сделать это в посте PHP / http? - PullRequest
0 голосов
/ 18 марта 2011

Мне выдана документация по API, которую я не совсем понимаю, поскольку нет URL-адреса для подключения?

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

Я бы предпочел сделать это на PHP ..

Как запустить цикл из 10 итераций, проверив, доступен ли домен, доступен ли его ответ, затем выполните команду регистрации и выйдите из сценария (используя код, приведенный в документации thd).

Спасибо.

1 Ответ

0 голосов
/ 18 марта 2011

В качестве основы я предлагаю использовать 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.Луканос отметил в комментариях, что это «api.planetdomain.com/servlet/TLDServlet".

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

, кстати, я использую только cURL для запросов GET, поэтому я могуне хватает некоторых деталей о том, как правильно сделать POST.Я попытался заполнить его, хотя.

Вы спрашиваете: «Как я могу запустить цикл из 10 итераций, проверяя, доступен ли домен, доступен ли его ответ, затем выполните команду register и выйдите из сценария.(используя код, предоставленный в документации thd). "

Хорошо, вот некоторый псевдокод, смешанный с действующим 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*/ }
        }

    }

Надеюсь, что это поможет вам встать на правильный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...