Клуб Яндекс.Метрики

Как отправить POST (xml или json) запрос и создать новый счетчик метрики с помощью PHP (curl_)

valentin.ignashevitch
20 июня 2013, 14:06

Создал вот такой PHP код, но сервер постоянно возвращает ошибку 400 Bad Request.

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

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


Или подскажите как можно на PHP реализовать функцию которая будет нормально работать именно с POST запросами. Неважно xml или json формата. 

 



Зарание спасибо!  

 

 

<?php

 

$url = 'http://api-metrika.yandex.ru/counters';

$ch = curl_init(

curl_setopt($ch, CURLOPT_URL,$url); // set url to post to

curl_setopt($ch, CURLOPT_FAILONERROR, 0);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable

curl_setopt($ch, CURLOPT_TIMEOUT, 9); 

curl_setopt($ch, CURLOPT_POST, 1); // set POST method

curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: OAuth 85c8x5c6ea34f2418aaf3892ec33d42a1c')) ;

curl_setopt($ch, CURLOPT_POSTFIELDS, "?name=Site_name&site=http://Site.name"); // add POST fields

$result = curl_exec($ch); // run the whole process 

$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);  

print_r($result);

 

?>

 

3 комментария
Подписаться на комментарии к посту

А вы уверены что сможете воспроизвести все необходимые параметры для запроса к серверу?

 

curl_setopt($ch, CURLOPT_POSTFIELDS, "?name=Site_name&site=http://Site.name"); // add POST fields

а знак вопроса разве нужен?

Решили проблему?