使用 PHP 的 cURL / 使用 PUT 和 GET
cURL with PHP / Working with PUT and GET
谁能帮我把这个翻译成PHP代码:
curl -X GET --header "Accept: text/plain" "https://test:testpassword@domain.com:1443/rest/items/test/state"
和:
curl -X PUT --header "Content-Type: text/plain" --header "Accept: application/json" -d "OFF" "https://test:testpassword@domain.com: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 更容易。
使其与 https 一起使用的最简单方法是添加:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
如果你想以正确的方式做到这一点,你可以阅读here。
为了验证,只有一行:
curl_setopt($process, CURLOPT_USERPWD, "username:password");
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);
}
谁能帮我把这个翻译成PHP代码:
curl -X GET --header "Accept: text/plain" "https://test:testpassword@domain.com:1443/rest/items/test/state"
和:
curl -X PUT --header "Content-Type: text/plain" --header "Accept: application/json" -d "OFF" "https://test:testpassword@domain.com: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 更容易。
使其与 https 一起使用的最简单方法是添加:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
如果你想以正确的方式做到这一点,你可以阅读here。
为了验证,只有一行:
curl_setopt($process, CURLOPT_USERPWD, "username:password");
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);
}