Я работаю, чтобы соединиться с API с помощью завиток и PHPCURL, JSON и PHP
У меня есть этот CURL заявление
curl -i --user api:YXBpOmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1 --data-binary @test.png https://api.blahblah.com/blah
где YXBpOmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1 является ключевым апи и @ test.png это изображение файл Мне нужно перенести в API для загрузки. То, что я не понимаю, как писать завиток для ссылки выше
и у меня также есть этот пример заявление, как указано на сайте для разработчиков (выглядит JSON)
POST /blah HTTP/1.1
Host: api.blahblah.com
Authorization: Basic YXBpOmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1
До сих пор, я написал эту игру,
$url = 'https://api.tinypng.com/shrink';
$image = 'bf4lwp2.png';
$key = 'YXBpOmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1';
$jsonscript = array(
'Host' => 'api.tinypng.com',
'Authorization' => $key);
$json_string = json_encode($jsonscript);
$ch = curl_init($url);
// Disable SSL verification
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'api:'.$key);
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FILE, $image);
// Execute
$result=curl_exec($ch);
Кроме того, если мой запрос будет успешным, я получаю это ...
HTTP/1.1 201 Created
Location: https://api.blahblah.com/blahblah.png
Content-Type: application/json; charset=utf-8
{
"input": {
"size": 87654
},
"output": {
"size": 102020,
"ratio": 0.236
}
}
Я знаю, что мне нужно использовать file_get_contents()
, чтобы получить все это, но я не знаю, какой URL-адрес нужно добавить в эту функцию.
file_get_contents не могут сделать POST сам по себе. он будет делать только GET. Вам нужно будет использовать cURL или использовать поток, чтобы перейти к f_g_c –
Очевидно ... Я написал его там в конце ... «Я не знаю, какой URL-адрес поставить (или что передать) в эту функцию (file_get_contents()) «... Sry, если я говорю грубо ... Его мой проект и вид от головной боли (не совсем, но вы знаете, что я имею в виду) за то, что тратили на это так много времени ... Can вы поможете мне с заявлением на скручивание? Где я ошибаюсь? – prateekkathal
CURLOPT_FILE записывает полученные данные в файл. это не то, как вы загружаете файл. это делается через postfields и префикс '@' для имени файла. например 'array ('@ file' => 'test.png')' –