send json post php

Receive JSON POST with PHP

I’m trying to receive a JSON POST on a payment interface website, but I can’t decode it.

I get nothing when I try this:

I get nothing when I try this:

I get NULL when I try this:

The JSON format is (according to payment site documentation):

The payment site log says everything is OK. What’s the problem?

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

10 Answers 10

From your json and your code, it looks like you have spelled the word operation correctly on your end, but it isn’t in the json.

EDIT

Maybe also worth trying to echo the json string from php://input.

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

It is worth pointing out that if you use json_decode(file_get_contents(«php://input»)) (as others have mentioned), this will fail if the string is not valid JSON.

This can be simply resolved by first checking if the JSON is valid. i.e.

Edit: Note that removing strlen($json_params) above may result in subtle errors, as json_last_error() does not change when null or a blank string is passed, as shown here: http://ideone.com/va3u8U

It will give you POST data as is.

You will be able to decode it using json_decode() later.

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

This worked for me.

Quite late.
It seems, (OP) had already tried all the answers given to him.
Still if you (OP) were not receiving what had been passed to the «.PHP» file, error could be, incorrect URL.
Check whether you are calling the correct «.PHP» file.
(spelling mistake or capital letter in URL)
and most important
Check whether your URL has «s» (secure) after «http».
Example:

or either way.
add or remove the «s» to match your URL.

Источник

Как отправить JSON-данные на сервер

Первый шаг на пути к облачному хранению данных.

Огромный проект у нас впереди. Скоро мы будем делать менеджер шаблонов текста, который сможет хранить наши бесценные данные не локально на компьютере, а на сервере.

Для этого мы уже сделали рабочий прототип приложения, а потом разобрались с понятием JSON. Теперь попробуем отправить данные на сервер.

Как это устроено

Если мы хотим хранить данные на сервере и отправлять их туда в любой момент, нам нужно действовать так:

Первые три пункта сделаем на клиенте — нашей HTML-странице, а скрипт и настройки — на сервере. Скрипт будем писать на PHP, поэтому, если не знаете, что это и как с этим работать, — почитайте.

Чтобы было проще, мы отправим и обработаем на сервере совсем маленький JSON — в нём всего две пары «имя: значение», но даже со сложным запросом всё будет работать так же.

Готовим HTML-страницу

У нас будет очень простая страница, потому что самое важное сейчас — научиться работать с JSON-форматом, а красоту наведём позже.

На странице нам понадобятся:

Мы сразу подключим jQuery, чтобы в скрипте напрямую обращаться к полям ввода и месту для вывода результата. А ещё заранее зададим синий цвет для вывода ответа от сервера — так мы сразу отличим данные на странице от того, что нам ответил сервер.

На языке HTML это будет так:

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post phpВнешний вид очень простой, чтобы проверить работоспособность всей системы

Отправляем данные на сервер

Обычно, чтобы отправить данные на сервер, нужно делать запрос. Вы нажимаете кнопку на странице, браузер уходит думать, ждёт ответа сервера и рисует вам новую страницу в соответствии с этим ответом. Грубо говоря, запрос на сервер заставляет вашу страницу перезагружаться.

К счастью, инженеры давно придумали, как отправлять данные на сервер, не перезагружая страницу. Для этого используют JavaScript.

// создаём новый экземпляр запроса XHR

Для запроса нам нужно знать адрес, куда будем отправлять наш JSON — это и есть адрес нашего скрипта, который мы напишем позже. Мы будем писать его на PHP, поэтому заранее можем придумать ему имя и адрес, где он будет лежать: http://mihailmaximov.ru/projects/json/json.php.

// адрес, куда мы отправим нашу JSON-строку

Когда мы знаем адрес, мы можем открыть соединение, чтобы сервер был готов принять наши данные. Это значит, что мы пока ничего ценного туда не посылаем, а просто предупреждаем сервер, что скоро что-то прилетит:

// открываем соединение. url — это переменная с нашим адресом

Теперь напишем заголовок запроса, чтобы сервер понимал, какие данные мы ему пришлём и как ему их обрабатывать. Так как у нас JSON, то это и пропишем в заголовке:

// устанавливаем заголовок —
выбираем тип контента, который отправится на сервер,
в нашем случае мы явно пишем, что это JSON

Чуть ниже сразу пропишем поведение скрипта на случай ответа сервера. Сервер должен обработать наши данные, вернуть ответ, а мы должны этот ответ поймать и вывести на страницу:

Последнее, что нам осталось сделать, — вытащить наши введённые данные из полей, собрать из них JSON и отправить на сервер:

// преобразуем наши данные JSON в строку

Пишем PHP-скрипт для сервера

Задача скрипта пока будет очень простой — ему нужно будет получить наши данные и показать, что всё пришло как нужно. В PHP уже встроена команда, которая разбирает JSON-строку на составляющие, поэтому весь скрипт будет занимать три строчки:

Сам код нам нужно сохранить как json.php и положить в папку /projects/json/ на нашем сайте — так мы прописали в скрипте на JavaScript.

Настраиваем сервер

Если мы сейчас попробуем нажать на кнопку, браузер нам выдаст ошибку:

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

Штука в том, что если сервер заранее всем не сообщит, что он готов работать с запросами, то браузер не даст нашей локальной странице на компьютере получить данные с другого сервера в интернете. Это сделано в целях безопасности, например, чтобы при оплате картой данные не ушли на другой сервер кроме нужного.

Header set Access-Control-Allow-Origin «*»

Первая строка разрешает серверу работать с запросами от любых страниц (хоть это и небезопасно, но пока мы учимся — так можно). Вторая строка содержит список разрешённых запросов. Третья разрешает нужные нам заголовки в запросе.

Фактически этот файл сейчас означает: «разрешаю тебе принимать запросы со всех сайтов, вот такого типа запросы можно принимать, вот такие у них могут быть заголовки». В буквальном смысле методичка.

Откуда вы знаете, что нужны именно эти команды?

Когда мы писали эту статью, нам потребовалось почитать справочники и форумы, протестировать несколько вариантов команд и в итоге найти именно эту — ту, что работает.

Вся информация по командам и настройке в интернете уже есть. Нужно просто ее искать, анализировать и тестировать.

Теперь в интернете есть ещё и эта статья, которая поможет вам меньше искать 🙂

Перезапускаем нашу локальную страничку и пробуем её в действии.

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post phpВсё работает. Синий текст мы получили от PHP-скрипта на сервере. Связь налажена!

Что дальше

Мы научились отправлять данные на сервер и немного работать там с ними. Дальше попробуем заменить в наших проектах локальное хранение данных на хранение на сервере, чтобы проекты работали с любого браузера.

Источник

POST request with JSON body

I would like to add a post to a Blogger blog via PHP. Google provided the example below. How to use that with PHP?

You can add a post for a blog by sending a POST request to the post collection URI with a post JSON body:

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

5 Answers 5

You need to use the cURL library to send this request.

If, for some reason, you can’t/don’t want to use cURL, you can do this:

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

I think cURL would be a good solution. This is not tested, but you can try something like this:

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

If you do not want to use CURL, you could find some examples on stackoverflow, just like this one here: How do I send a POST request with PHP?. I would recommend you watch a few tutorials on how to use GET and POST methods within PHP or just take a look at the php.net manual here: httprequest::send. You can find a lot of tutorials: HTTP POST from PHP, without cURL and so on.

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

I made API sending data via form on website to prosperworks based on @Rocket Hazmat, @dbau and @maraca code. I hope, it will help somebody:

Not the answer you’re looking for? Browse other questions tagged php json post or ask your own question.

Linked

Related

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.9.17.40238

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

How do I send a POST request using PHP?

Compare Request Timings

What is PHP Curl Library?

Curl and its core library libcurl were created by Daniel Stenberg and allow you to interact with servers through various types of protocols, including HTTP, HTTPS, FTP, and others. Libcurl supports HTTPS certificates, HTTP GET, POST, PUT, PATCH, and other HTTP methods, FTP file uploads (FTP file upload can also be done with PHP FTP extension), HTTP form based uploads, proxies, cookies, and user authentication. To use PHP Curl functions, you need to install libcurl 7.10.5 or newer and compile PHP with Curl support. The behavior of PHP Curl functions is affected by the curl.cainfo setting in the php.ini file.

What is the HTTP POST request method?

The HTTP POST request method is used to send data to the server. For example, to submit login or contact forms, to upload images, or to send JSON, XML, or PDF files to a server.

How to post requests using PHP Curl library?

CURL-less method for sending POST requests using PHP

How to post JSON using PHP?

To send JSON to the server, you must provide a Content-Type: application/json request header and provide the JSON data in the body of the POST message. The Content-Type header allows the server to correctly interpret and process the received data.

How to post XML using PHP?

To post an XML to the server, you must provide a Content-Type: application/xml request header and provide the XML data in the body of the POST message.

How to post HTML Form using PHP?

HTML forms must be submitted with a Content-Type: application/x-www-form-urlencoded request header and form data must be provided as key=value pairs, as shown in the example below.

Источник

How can I use Guzzle to send a POST request in JSON?

14 Answers 14

For Guzzle 5, 6 and 7 you do it like this:

For Guzzle

The simple and basic way (guzzle6):

To get the response status code and the content of the body I did this:

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

This worked for me (using Guzzle 6)

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

You can either using hardcoded json attribute as key, or you can conveniently using GuzzleHttp\RequestOptions::JSON constant.

Here is the example of using hardcoded json string.

This works for me with Guzzle 6.2 :

According to the documentation guzzle do the json_encode

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

Symfony version: 2.3

I had an experience recently about sending json with Guzzle. I use Symfony 2.3 so my guzzle version can be a little older.

I will also show how to use debug mode and you can see the request before sending it,

When i made the request as shown below got the successfull response;

@user3379466 is correct, but here I rewrite in full:

send json post php. Смотреть фото send json post php. Смотреть картинку send json post php. Картинка про send json post php. Фото send json post php

Simply use this it will work

I use the following code that works very reliably.

The code includes a trap to detect and report an unsuccessful or invalid call which will then return false.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *