ошибка при использовании php и curl при отправке api-запроса - PullRequest
0 голосов
/ 21 мая 2019

Я отправляю запрос API, используя curl и php.Первый работает, но не второй.Ошибка показывает, что данные постполей пусты или весь запрос пуст.Я в замешательстве.

это мой код

$request_id = "aaa7996d-8d5c-4116-b759-6afb1c84ff39";
$res_url = "http://opeapi.ws.pho.to/getresult";
$res_data = array('request_id'=>$request_id);
$res_ch = curl_init();
curl_setopt($res_ch, CURLOPT_URL, $res_url);
curl_setopt( $res_ch, CURLOPT_POST, true );
curl_setopt($res_ch, CURLOPT_POSTFIELDS,$res_data);
curl_setopt($res_ch, CURLOPT_RETURNTRANSFER, 1);
$results = curl_exec($res_ch);
curl_close($res_ch);
var_dump($results);

, но результаты вернулись:

SecurityError612Bad, invalid or empty REQUEST_ID parameter.

Вот несколько вещей, которые я пробую:

$res_data = array('request_id'=>urlencode($request_id));
$res_data = "request_id=".$request_id;
$res_data1 = json_encode($res_data);
$res_data1 = http_build_query($res_data);

$res_url = "http://opeapi.ws.pho.to/getresult?request_id=aaa7996d-8d5c-4116-b759-6afb1c84ff39";

ни один из них на самом деле не работает.

но любопытно, что у меня есть еще одна просьба до этого.Также с помощью Pho.to API.Я обработал фотографию, используя их параметры, и получил результат, используя curl и php.Это работает (вот почему я получаю request_id для получения результата обработки)

это мой прежний запрос.это работает, почему бы не второе ??

$data = '(some xml parameters)';

$sign_data = hash_hmac('SHA1', $data,'***');
$url = "http://opeapi.ws.pho.to/addtask";
$posting = array('app_id'=>'***','key'=>'***','sign_data'=>$sign_data,'data'=>$data);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_POSTFIELDS,$posting);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);

сообщение об ошибке предполагает, что нет request_id ... или весь запрос $ curl равен нулю ...

Любая помощь или предложениебудет высоко ценится !!!Пожалуйста ~ Спасибо !!!

1 Ответ

0 голосов
/ 21 мая 2019

Я понял это!

Оказывается, я должен использовать запрос get (для получения моих данных), а не пост. Поэтому я напрямую записываю свой URL в ... http://? Request_id = и удаляю все строки опций о запросе (потому что процесс по умолчанию - get, а не post), и это сработало! Мне понадобилось 7 часов, чтобы понять это ... ТАТ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...