Php Curl Post anahtarsız veri göndermek
Herkese iyi günler.
Aşağıdaki kodların php.curl karşılığı lazım.
İstek atılan sunucu anahtarsız değer istiyor localhost kullanırken fetch ile çalışıyor fakat ip adresi kullanıldığında fetch çalışmıyor. O yüzden php.curl kullanmak istedim fakat bu seferde veri gönderme kısmına takıldım.
Bu konuda yardımcı olabilir misiniz?
fetch("https://backend-p.defterbeyan.gov.tr/rs/external/auth/loginWithToken", {
"referrer": "https://portal.defterbeyan.gov.tr/",
"referrerPolicy": "strict-origin-when-cross-origin",
"body": "67b58efa-7c9a-43e0-b74a-e7d97bdb7eba",
"method": "POST",
"mode": "cors",
"credentials": "omit"
})
Php tarafında kullandığım kodlar:
$defterBeyan = curl_init();
$t = "67b58efa-7c9a-43e0-b74a-e7d97bdb7eba";
curl_setopt_array($defterBeyan, [
CURLOPT_URL => "https://backend-p.defterbeyan.gov.tr/rs/external/auth/loginWithToken",
CURLOPT_REFERER => "https://portal.defterbeyan.gov.tr/",
CURLOPT_POST => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HEADER => true,
CURLOPT_HTTPHEADER => array("content-type: text/plain"),
CURLOPT_POSTFIELDS => $t
]);
Aldığım hata:
HTTP Status 415 – Unsupported Media Type
Type Status Report
Message Unsupported Media Type
Description The origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource.
anladım. aşağıdaki kodların php karşılığı lazım deyince, bende php karşılığını yazdım. hedef api de ki gereksinimler hakkında haliyle fikrim yoktu hala da yok. header'dan gelen verileri ayrıştırmak için preg_match
kullanabilirsin https://www.php.net/manual/en/function.preg-match
çerezi almak istedğini varsaydığım bir örnek;
$header = 'HTTP/1.1 200
Set-Cookie: JSESSIONID=63D6B8E04778547F25B3ABBB20B5E94D; Path=/; HttpOnly
Server-Time: 1658310818544
Token: **************
Content-Type: application/json;charset=UTF-8
Content-Length: 133
Date: Wed, 20 Jul 2022 09:53:38 GMT';
preg_match('/JSESSIONID=(.*?);/si',$header, $cerez);
echo $cerez[1];