Получение опубликованных данных из REST API

Я создал остальной APi для своего сайта. Методы GET работают нормально. Для метода POST api не получает обратно отправленные данные. Я написал этот код, но он дает ошибку из-за Примечание: попытка получить свойство не-объекта в

$response = file_get_contents('http://myapi.com/object/post.php');
$data = json_decode($response);

$object->id = $data->id;
$object->name = $data->name;

используйте CURL для запросов. file_get_contents бесполезен. Вы получаете ошибку из-за того, что $data имеет значение null.

Mojtaba 06.08.2018 16:11

Рекомендуется использовать интерфейс, такой как запросы на публикацию jquery, он поможет вам в будущем.

azizsagi 06.08.2018 16:13

Или лучше, чем jQuery, использовать fetch как встроенную функцию браузера :) Пусть фронтенд сделает свою часть ...

Domenik Reitzner 06.08.2018 16:15

возможный дубликат: stackoverflow.com/questions/2445276/…

Tom 06.08.2018 16:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
99
2

Ответы 2

Вы можете просто использовать file_get_contents для URL-адреса GET, но для получения данных с URL-адреса POST вам необходимо использовать CURL:

<?php

$post = [
    'postData1' => 'datavalue1',
    'postData2' => 'datavalue2'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://myapi.com/object/post.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$response = curl_exec($ch);
$data = json_decode($response);

$object->id = $data->id;
$object->name = $data->name;

Спасибо за ответ. В $ post = ['postData1' => 'datavalue1', 'postData2' => 'datavalue2']; postData1, postData2 будут моими переменными. Как я получу datavalue1, datavalue2. Будет ли это $ post = ['postData1' => $ _POST ['postData1'], 'postData2' => $ _POST ['postData1']];

Asad 06.08.2018 17:16

Да, это переменные, которые вы, возможно, захотите отправить по URL-адресу, и вы можете присвоить им значения, как вы сказали выше.

Sujit Agarwal 07.08.2018 08:19

Использование POST в file_get_contents объясняется в документации PHP. На странице руководства http://php.net/manual/en/function.file-get-contents.php:

<?php
// Create a stream
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.example.com/', false, $context);
?>

Другие вопросы по теме