Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/43: Рейтинг темы: голосов - 43, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 26

CURL - правильно отправить POST

30.07.2016, 19:44. Показов 8114. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Отправляю запрос:
PHP
1
2
3
4
5
6
7
8
9
  $ch = curl_init();     
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($curl, CURLOPT_POSTFIELDS,'{"Language":"ru"}{"Params":[null, null, "1", null, null]}');
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0');   
  $data = curl_exec($ch);
  curl_close($ch);
  echo $data;
Получаю ответ:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Warning: curl_setopt() expects parameter 1 to be resource, null given in on line 5
HTTP/1.1 405 Method Not Allowed
Server: nginx/1.11.3
Date: Sat, 30 Jul 2016 16:01:59 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 1565
Connection: keep-alive
Cache-Control: private
Allow: POST
 
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Service</title>
  </head>
  <body>
    <div id="content">
      <p class="heading1">Service</p>
      <p>Method not allowed.</p>
    </div>
  </body>
</html>
Смотрю, как делает это браузер (Chrome -> F12 -> Вкладка Network
):
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
General
Request URL:xxxxxxxxxxx
Request Method:POST
Status Code:200 
Remote Address:94.242.194.182:443
 
Response Headers
access-control-allow-credentials:true
access-control-allow-headers:DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type
access-control-allow-methods:GET, POST, OPTIONS
access-control-allow-origin:*
cache-control:private
content-encoding:gzip
content-type:application/json; charset=utf-8
date:Sat, 30 Jul 2016 15:14:30 GMT
server:nginx/1.11.3
status:200
vary:Accept-Encoding
 
Request Headers
:authority:xxxxxxxxxxx
:method:POST
:path:/xxxxxxxxxxx/xxxxxxxxxxx
:scheme:https
accept:*/*
accept-encoding:gzip, deflate, lzma, br
accept-language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
content-length:57
content-type:application/json
cookie:SESSION=g9uau1118p70lknk98u6e3g5v0; *******id=a_5343b_853c_; ref_partner_id=4619; *******id_dt=1469884198; tzo=3; blocks=1%2C1%2C1%2C1%2C1%2C1%2C1%2C1; _ym_uid=1469884240227143016; _ym_isad=2; warnmsg=0; fortuna=1; _ga=GA1.2.183166187.1469884236; _gat=1; _ym_visorc_22934032=w; lng=ru; wcmaintab=8978875%3B1469891683
origin:[url]https://xxxxxxxxxxx[/url]
referer:[url]https://xxxxxxxxxxx/xxxxxxxxxxx[/url]
user-agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41
x-requested-with:XMLHttpRequest
 
Request Payload
{"Language":"ru"}{"Params":[null, null, "1", null, null]}
Други, подскажите, пожалуйста, где и что я делаю не так, и как правильно сформировать запрос с выше изложенными данными.
P.S
какой параметр 1 ожидает curl_setopt() в строке 5
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.07.2016, 19:44
Ответы с готовыми решениями:

Отправить post curl с raw data
Как передать запрос такого вида: Чтобы в имени передать Raw Data а в значении все остальное? Прикрепляйте файлы и изображения к...

Отправить запрос с CURL
Добрый отсылаю запрос авторизации с CURL для этой формы: &lt;form data-tab=&quot;sign-in&quot; id=&quot;form&quot; class=&quot;sin active&quot;...

Отправить данные через curl
Всем привет! Пишу некий сервис. Клиент через curl отправляет на мой сервис пару файлов и набор параметров. Сервис их принимает и...

8
0 / 0 / 0
Регистрация: 21.06.2016
Сообщений: 11
30.07.2016, 19:56
curl_setopt($ch, CURLOPT_POST, true);

Добавлено через 2 минуты
в 5й строке ожидается явно не переменная $curl в качестве параметра, ибо она нигде не объявлена, там должна быть $ch

Добавлено через 3 минуты
в той же 5й строке лучше передать данные в массиве, как нить так
PHP
1
2
3
4
 curl_setopt($ch, CURLOPT_POSTFIELDS, array(
        'photo' => $uploadPhoto,
        'photo2' => $uploadPhoto2,
    ));
0
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 26
30.07.2016, 20:27  [ТС]
dasdaas,
Цитата Сообщение от kyran29 Посмотреть сообщение
{"Language":"ru"}{"Params":[null, null, "1", null, null]}
Я правильно понимаю нужно так:
PHP
1
2
3
4
 curl_setopt($ch, CURLOPT_POSTFIELDS, array(
        'Language' => 'ru',
        'Params' => '[null, null, "1", null, null]',
    ));
0
0 / 0 / 0
Регистрация: 21.06.2016
Сообщений: 11
30.07.2016, 23:08
PHP
1
2
3
4
5
6
7
<?php
$array = array(
    "foo" => "bar",
    "multi" => array(
         "foo" => "bar"
     )
);
я бы передал так
0
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 26
30.07.2016, 23:20  [ТС]
dasdaas,

PHP
1
curl_setopt($ch, CURLOPT_POSTFIELDS,$array = array('Language' => 'ru','Params' => array('null','null','1','null','null')));
получаю вот такой ответ:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
HTTP/1.1 100 Continue
 
HTTP/1.1 500 Internal Server Error
Server: nginx/1.11.3
Date: Sat, 30 Jul 2016 20:16:59 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 193
Connection: close
 
<html>
<head><title>500 Internal Server Error</title></head>
<body bgcolor="white">
<center><h1>500 Internal Server Error</h1></center>
<hr><center>nginx/1.11.3</center>
</body>
</html>
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
30.07.2016, 23:27
Лучший ответ Сообщение было отмечено kyran29 как решение

Решение

kyran29, Вам же json отправить надо?
Тогда
PHP
1
2
$array = array('Language' => 'ru','Params' => array('null','null','1','null','null'));
curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($array, JSON_UNESCAPED_UNICODE));
1
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 26
31.07.2016, 00:26  [ТС]
Cra3y, - Спасибо!

вот:
PHP
1
2
3
4
5
6
7
8
9
10
$data = array("Language" => "ru", "Params" => array("null", "null", "1", "null", "null"));   
$data_string = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_string)));
$data = curl_exec($ch);
$data = json_decode($data);
var_dump($data);
ответ приходит

Добавлено через 8 минут
Cra3y,

вот эти строки не нужны в запросе?
HTML5
1
2
referer:https://xxxxxxxxxxx/xxxxxxxxxxx
x-requested-with:XMLHttpRequest
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
31.07.2016, 00:35
Цитата Сообщение от kyran29 Посмотреть сообщение
вот эти строки не нужны в запросе?
если без них работает, то наверно не нужны...
0
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 26
31.07.2016, 00:41  [ТС]
Cra3y,

Большое спасибо, очень выручили.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.07.2016, 00:41
Помогаю со студенческими работами здесь

CURL Post > Get
Здравствуйте, не получается переделать из post в get post private $xml_api = array( &quot;agent_req_num&quot; =&gt;...

Curl post запрос PHP
Не получается сформировать правильный post-запрос с помощью Curl PHP. Есть код: &lt;?php $post = ; $ch =...

Не отправляется post запрос (cURL)
Доброго времени суток. Появилась необходимость спарсить вопросы для теста. Парсить собираюсь отсюда http://myrusakov.ru/tests.html ...

Curl не получается отправить заголовки
Всем привет! Опишу алгоритм действий: 1. Смотрю в отладчике, какие заголовки браузер посылает на сайт. 2. Копирую все эти...

CURL, как отправить запрос и закрыть соединение
Доброго времени суток уважаемые! Подскажите пожалуйста, как с помощью PHP/cURL - выполнить запрос и не дожидаясь ответа - просто закрыть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru