Saya mencoba melakukan permintaan HAPUS http menggunakan PHP dan cURL.
Saya telah membaca cara melakukannya di banyak tempat, tetapi tidak ada yang berhasil untuk saya.
Inilah cara saya melakukannya:
public function curl_req($path,$json,$req)
{
$ch = curl_init($this->__url.$path);
$data = json_encode($json);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $req);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data)));
$result = curl_exec($ch);
$result = json_decode($result);
return $result;
}
Saya kemudian melanjutkan dan menggunakan fungsi saya:
public function deleteUser($extid)
{
$path = "/rest/user/".$extid."/;token=".$this->__token;
$result = $this->curl_req($path,"","DELETE");
return $result;
}
Ini memberi saya KESALAHAN server internal HTTP. Dalam fungsi saya yang lain menggunakan metode curl_req yang sama dengan GET dan POST, semuanya berjalan dengan baik.
Jadi apa yang saya lakukan salah?
Jawaban:
Saya akhirnya menyelesaikan ini sendiri. Jika ada orang lain yang mengalami masalah ini, inilah solusi saya:
Saya membuat metode baru:
Perbarui 2
Karena ini tampaknya membantu beberapa orang, berikut adalah metode DELETE curl terakhir saya, yang mengembalikan respons HTTP dalam objek yang didekodekan JSON:
sumber
Untuk memanggil GET, POST, DELETE, PUT Semua jenis permintaan, saya telah membuat satu fungsi umum
sumber
Permintaan kelas saya sendiri dengan otentikasi wsse
sumber
sumber
sumber
$json empty
maksudnya disini? Itu tidak ada dalam ruang lingkup di dalam fungsi ini, jadi penggunaan$json
tidak akan melakukan apa-apa.