cURL с PHP / Работа с PUT и GET

Может ли кто-нибудь помочь мне перевести это на PHP-код:

curl -X GET --header "Accept: text/plain" "https://test:[email protected]:1443/rest/items/test/state"

а также:

curl -X PUT --header "Content-Type: text/plain" --header "Accept: application/json" -d "OFF" "https://test:[email protected]:1443/rest/items/test/state"

Моя попытка не удалась. Обычно я бы использовал это:

function sendCommand($item, $data) {
$url = "http://192.168.1.121:8080/rest/items/" . $item;

$options = array(
'http' => array(
'header'  => "Content-type: text/plain\r\n",
'method'  => 'POST',
'content' => $data  //http_build_query($data),
),
);

$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);

return $result;
}

Но я не знаю, как добавить поддержку SSL и аутентификацию в скрипт, и я знаю, что это проще с cUrl.

0

Решение

Самый простой способ заставить его работать с https — это добавить:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

Если вы хотите сделать это правильно, вы можете прочитать Вот.

Для аутентификации есть только одна строка:

curl_setopt($process, CURLOPT_USERPWD, "username:password");

0

Другие решения

function sendCommand($item,$itemValue){
$ch = curl_init("http://[IP from openHAB2]:8080/rest/items/".$item."/state");
$curlOptions = array(
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => array('Content-Type: text/plain','Accept: application/json'),
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => NULL,
CURLOPT_POSTFIELDS => $itemValue
);
curl_setopt_array($ch, $curlOptions);
if(curl_exec($ch) === false){
$this->updateDatabase(curl_error($ch));
echo 'Curl-Fehler: ' . curl_error($ch);
exit();
}else{
curl_exec($ch);
return true;
}
curl_close($ch);
}
0

По вопросам рекламы [email protected]