Использование почтальона, я отправить POST в (мое имя пользователя и пароль заполнены):POST работает на Postman, но не с CURL
https://ssl.reddit.com/api/login?api_type=json&user=XXX&passwd=XXX&rem=True
я получаю ответ, содержащий modhash и печенье. Затем я посылаю вторую POST с почтальона:
https://en.reddit.com/api/comment?api_type=json&text=7/1/15TEST&thing_id=t1_csa56v2
со следующими заголовками (XXX было подтверждено и заполнены):
User-Agent: XXX
Cookie: reddit_session=XXX
X-Modhash: XXX
Это дает правильный ответ, но когда я пытаюсь сделать то же самое с CURL на моем PHP, он отвечает USER_REQUIRED. Еще раз, я подтвердил, что cookie и modhash верны.
$name = 't1_csa56v2';
$text = 'NEWEST TEST 7/2/15 12:20am';
$url = 'https://en.reddit.com/api/comment';
$modhash = 'XXX';
$cookie = 'XXX';
$headerFields = array (
'User-Agent' => 'XXX',
'Cookie' => 'reddit_session='.$cookie,
'X-Modhash' => $modhash
);
$postFields = array (
'api_type' => 'json',
'text' => $text,
'thing_id' => $name
);
$field_string = http_build_query($postFields);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerFields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 3);
curl_setopt($ch, CURLOPT_POSTFIELDS, $field_string);
$response = curl_exec($ch);
Что я делаю неправильно? Почему я не могу получить тот же ответ?
Скриншот POSTMAN:
Вы отправляете имя пользователя и пароль в запрос с URL-адресом (например, отправляя запрос GET). С помощью Curl вы отправляете запрос POST. –
@NeerajVerma О, извините, я забыл включить, что вы можете указать с почтальоном отправить POST – radleybobins
Но просто указать отправить запрос POST недостаточно. Вам необходимо отправить данные POST. Но здесь вы отправляете данные по URL-адресу. –