Отправка данных в API в PHP - PullRequest
       0

Отправка данных в API в PHP

0 голосов
/ 01 октября 2018

Вариант 1:

$data= array(
    "Code" => "abcde",
    "Id" => "A007",
    "RefNo" => "123456",
    "UserName" => "QWE",
    "UserEmail" => "qwe@gmail.com",
);
$url="https://testing.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result=curl_exec($ch);
curl_close ($ch);
echo $result;
}


Вариант 2:

<form method="post" action="https://testing.php">
    <input type="hidden" value="abcde" name="Code">
    <input type="hidden" value="A007" name="Id">
    <input type="hidden" value="QWE" name="UserName">
    <input type="hidden" value="qwe@gmail.com" name="UserEmail">
    <input type="hidden" value="123456" name="RefNo">
    <input type="submit" name="submit">
</form>


Есть ли различия между A и B?Потому что я пробовал и то и другое, но локон только получал ответ «сбой» от API.

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Вы можете использовать следующий код:

$url = 'testing.php';

$fields = array(
    'Id' => urlencode($_POST['Id']),
    'Code' => urlencode($_POST['Code']),
    'UserName' => urlencode($_POST['UserName']),
    'UserEmail' => urlencode($_POST['UserEmail']),
    'RefNo' => urlencode($_POST['RefNo'])
);

foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

открытое соединение:

$ch = curl_init();

Установить URL, количество переменных POST, данные POST:

curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

Выполнить сообщение:

$result = curl_exec($ch);

Закрыть соединение:

curl_close($ch);
0 голосов
/ 01 октября 2018

Нет никакой разницы, так как они оба отправляют POST-запрос, но вы можете сказать единственное отличие в используемой вами технике:

  • первый может быть полностью выполнен из бэк-энда, и этопозволит вам проверить ваши данные перед отправкой их в API.
  • Во-вторых, это не позволит, вам, возможно, придется написать код JavaScript для проверки перед отправкой.

ОшибкаВозможно, вам придется столкнуться с отсутствием данных в вашем запросе.или, возможно, ваш IP-адрес не занесен в белый список на сервере, к которому вы пытаетесь получить доступ к его API.

Кроме того, такого URL нет, https://testing.php, попробуйте использовать ваш IP-адрес или полный серверадрес для отправки запроса.

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