Curl возвращает успех, но вызов API завершается неудачно - PullRequest
1 голос
/ 31 августа 2011

Я использую API URL Webex и по какой-то причине при записи простого запроса PHP cURL на URL, API возвращает ошибку. Но если я передам в форму те же параметры записи и атрибут действия формы будет равен конечной точке API, API вернет успех.

Вот метод формы:

  <form action="xxxxxxx987" name="hidden_form" method="post">
      <input value="EN" name="AT" type="hidden" />
      <input value="xxxxxxx987" name="MK" type="hidden" />
      <input value="<?php echo $email; ?>" name="AE" type="hidden" />
      <input value="<?php echo $firstname; ?>" name="FN" type="hidden" />
      <input value="<?php echo $lastname; ?>" name="LN" type="hidden" />
      <input value="<?php echo $company; ?>" name="CO" type="hidden" />
      <input value="http://mysite.com/resources/thank_you" name="BU" type="hidden" />
  </form>

А вот метод cURL:

$url = "https://mysite.com/m.php";
//Data Array
$postParams = array("AT"=>"EN",
                    "MK"=>"xxxxxxx987",
                    "AE"=>"my@email.com",
                    "FN"=>"fname",
                    "LN"=>"lname",
                    "CO"=>"my company",
                    "BU"=>"http://192.168.x.x/resources/thank_you");
//Encode Query Data
$data = http_build_query($postParams);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true); //True For Regular HTTP Post
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded", "Content-length: ".strlen($data)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);

if($result) {
    echo '<h3>Status: Curl Succeeded</h3>';
    print 'Result: '.$result;
}

Вопрос: почему происходит сбой API, когда я его скручиваю, и почему он преуспевает при использовании его в качестве действия после публикации формы? Что не так с методом cURL?

1 Ответ

1 голос
/ 31 августа 2011

Вам не нужно http_build_query, потому что CURLOPT_POSTFIELDS принимает массив

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