Отправка данных с использованием метода отправки без формы - PullRequest
2 голосов
/ 20 июля 2011

Я хочу отправить данные в API.Данные включают в себя простые переменные: имя пользователя, пароль, адрес электронной почты и т. Д. Проблема в том, что O хочет отправить данные для этого, используя метод POST.Я искал эту проблему в Google, и все говорят, что нужно искать CURL.

Что такое CURL?Это функция, скрипт, API или что?

Есть ли другой способ сделать это?

Я хочу отправить что-то вроде этого:

$username, $password to www.abc.com?username=$username&password=$password

BestПривет

Ответы [ 5 ]

3 голосов
/ 20 июля 2011

Используя эту функцию, вы можете отправить запрос с дополнительным номером параметры. Просто заполните массив postdata парами значений ключа. Пример использования предоставлен.

<?php

function do_post_request($url, $postdata)
{
  $content = "";

  // Add post data to request.
  foreach($postdata as $key => $value)
  {
    $content .= "{$key}={$value}&";
  }

  $params = array('http' => array(
    'method' => 'POST',
    'header' => 'Content-Type: application/x-www-form-urlencoded',
    'content' => $content
  ));

  $ctx = stream_context_create($params);
  $fp = fopen($url, 'rb', false, $ctx);

  if (!$fp) {
    throw new Exception("Connection problem, {$php_errormsg}");
  }

  $response = @stream_get_contents($fp);
  if ($response === false) {
    throw new Exception("Response error, {$php_errormsg}");
  }

  return $response;
}

// Post variables.
$postdata = array(
  'username' => 'value1',
  'password' => 'value2',
  'param3' => 'value3'
);

do_post_request("http://www.example.com", $postdata);
?>
2 голосов
/ 20 июля 2011

cURL - это библиотека, «которая позволяет вам подключаться и взаимодействовать с множеством разных типов серверов с множеством разных типов протоколов».Таким образом, вы можете использовать cURL для отправки запроса HTTP POST.Пожалуйста, прочитайте руководство по PHP для получения подробной информации: http://www.php.net/manual/en/book.curl.php

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

Лично я часто использую cURL, потому что он очень гибкий и вы можете легко работать с файлами cookie.

1 голос
/ 27 октября 2017

Просто используйте: file_get_contents()

// building array of variables
$content = http_build_query(array(
            'username' => 'value',
            'password' => 'value'
            ));
// creating the context change POST to GET if that is relevant 
$context = stream_context_create(array(
            'http' => array(
                'method' => 'POST',
                'content' => $content, )));

$result = file_get_contents('http://www.example.com', null, $context);
//dumping the reuslt
var_dump($result);
1 голос
/ 20 июля 2011

Набор данных в XML-файле:

$post="<?xml version="1.0\" encoding=\"UTF-8\"?>
<message xmlns=\"url\"   >
<username>".$username."</username>
<password>".$password."</password>

<status date=\"2010-11-05 14:44:10+02\"/>
<body content-type=\"text/plain\">Noobligatory text</body>
</message>";

$url = "a-url-to-send-the-data";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 6);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
curl_close($ch);
1 голос
/ 20 июля 2011

Php curl manual - хорошая отправная точка.

Ниже приведен пример использования curl в php в Stackoverflow:

Отправить сообщение с помощью php

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