PHP İle Curl İsteği
merhaba arkadaşlar, bir sunucum üzerinde nodejs kullanıyorum express ile birlikte. Bu sunucuya POSTMAN ile GET gönderdiğimde normal şekilde çalışıyor, fakat POSTMAN üzerinden direk CURL kodlarını başka bir sunucudan PHP üzerinde çalıştırmak istediğimde cevap alamıyorum.
Her iki sunucuda da ssl kullanılmıyor, nodejs olan sunucuda web server bulunmuyor, direk IP Adresi ile sorgu yapıyorum. POSTMAN ile oluşturulan CURL kodları aşağıda.
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'sunucuipadresi:8090?veri1=***&veri2=***',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Evet sorun nodejs tarafındaki kodlardaymış. POSTMAN üzerinden test verisi ile sorun çıkmıyordu, CURL ile gerçek veri kullanınca tabiki atlanan bir kaç eksiklik olduğunu gördüm. Örneğin dizin oluşturmada adımında, klasör adında "/" gelince hata veriyormuş haliyle. PM2 kullandığım için bir hata görünmüyordu ama .js dosyasını direk çalıştırınca hatayı gösterdi şükür :) Yani POSTMAN kodlarında bir hata yokmuş...
POSTMAN yanında, local üzerinde de denedim hatasız çalışıyor. Ama http://render.webadresi.com adresi üzerinden istekte bulununca cevap yok.
denediğim adımlar:
CORS hatası almamama rağmen;
1- express js üzerinde cors() ekledim ve app.use(cors()) ile tüm bağlantılara izin verdim.
2- http://render.webadresi.com üzerinde header("Access-Control-Allow-Origin: *"); satırı ekledim.
3- http://render.webadresi.com sitesinde tüm güvenlik ile ilgili modüller (firewall,modsec vs) kapalı
herhangi bir hata almıyorum tüm durum kodları 200. network sekmesi aşağıda