Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Γεια σε όλους

Χρησιμοποιώ την curl για να πάρω κάποια δεδομένα από ένα api

o κώδικας είναι αυτός

$json_request = file_get_contents('php://input');
$ch = curl_init("http://hostname.com:7380/qopwebui/batchcalculation_servlet?username=XXXX&password=XXX");
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS,$json_request); 
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec($ch);

Σε μία εφαρμογή που το έχω ήδη  δουλεύει κανονικά και στο localhost επίσης δουλεύει

Ο ίδιος κώδικας σε άλλους host δεν δουλέυει. Στον 1 παίρνω connection refused και στον άλλο τίποτα.  Και στους δύο παρατηρώ με την curl_getinfo ότι τα options δεν φορτώνονται στο curl

Παίρνω δηλαδή αυτό.

 

Failed to connect to hostname.com port 7380: Connection refused1
Array ( [url] => http://hostname.com:7380/qopwebui/batchcalculation_servlet?username=XXXX&password=XXXX [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.200964 [namelookup_time] => 0.000493 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [redirect_url] => [primary_ip] => [certinfo] => Array ( ) [primary_port] => 0 [local_ip] => [local_port] => 0 [http_version] => 0 [protocol] => 0 [ssl_verifyresult] => 0 [scheme] => [appconnect_time_us] => 0 [connect_time_us] => 0 [namelookup_time_us] => 493 [pretransfer_time_us] => 0 [redirect_time_us] => 0 [starttransfer_time_us] => 0 [total_time_us] => 200964 ) 1

Καμια ιδέα τι μπορεί να φταίει.

 

Επεξ/σία από k33theod
Δημοσ.

Αφού τσεκάρεις ότι δεν είναι κάποιο firewall στους σέρβερ σου που να κόβει τα συγκεκριμένα connections (σε ip, port ή protocol level), ίσως να είναι το firewall του destination server που κόβει τα connections από ip συγκεκριμένων χωρών ή εταιριών (πχ με range blocking). Γιατί δεν επικοινωνείς με την εταιρία που παρέχει το API α σε διαφωτίσουν στο κατά πόσο λαμβάνουν τα requests? 

  • Like 1
Δημοσ. (επεξεργασμένο)

Να υποθέσω ότι έχεις δημιουργήσει καταχώριση για το hostname.com στο / etc / hosts, δοκίμασες και με local ip στο $ch = curl_init("http:// ?

Για το connection refused, ισχύουν ότι προανέφερε o @t(o.ot).

 

Επεξ/σία από htaccess
Δημοσ. (επεξεργασμένο)
16 ώρες πριν, t(o.ot) είπε

Αφού τσεκάρεις ότι δεν είναι κάποιο firewall στους σέρβερ σου που να κόβει τα συγκεκριμένα connections (σε ip, port ή protocol level), ίσως να είναι το firewall του destination server που κόβει τα connections από ip συγκεκριμένων χωρών ή εταιριών (πχ με range blocking). Γιατί δεν επικοινωνείς με την εταιρία που παρέχει το API α σε διαφωτίσουν στο κατά πόσο λαμβάνουν τα requests? 

Το ένα hosting αυτό που επιστρέφει connection refused είναι δικό μου και δεν έχει κάποιους περιορισμούς, το άλλο που δεν επιστρέφει τίποτα είναι ένα wordpress που βάλαμε μέσα τον κώδικα και δεν ξερω περισσότερα.

Έστειλα μύνημα σε αυτόν που διαχειρίζεται το api και περιμένω.

11 ώρες πριν, htaccess είπε

Να υποθέσω ότι έχεις δημιουργήσει καταχώριση για το hostname.com στο / etc / hosts, δοκίμασες και με local ip στο $ch = curl_init("http:// ?

Για το connection refused, ισχύουν ότι προανέφερε o @t(o.ot).

Όχι δεν έχω ιδέα γιατί μιλάς. Από το localhost δουλεύει κανονικά το script.

Επεξ/σία από k33theod
Δημοσ.

 

15 ώρες πριν, k33theod είπε

Όχι δεν έχω ιδέα γιατί μιλάς. Από το localhost δουλεύει κανονικά το script.

Το hostname.com είναι ένα παράδειγμα στο κώδικά σου, όπως π.χ. example.com ?

Προσπαθώ να καταλάβω πως εννοείς από localhost λειτουργεί, όπως παρακάτω ?

$ch = curl_init("http://localhost:7380/qopwebui/batchcalculation_servlet?username=XXXX&password=XXX");

 

Δημοσ.
14 ώρες πριν, htaccess είπε

Το hostname.com είναι ένα παράδειγμα στο κώδικά σου, όπως π.χ. example.com ?

Προσπαθώ να καταλάβω πως εννοείς από localhost λειτουργεί, όπως παρακάτω ?


$ch = curl_init("http://localhost:7380/qopwebui/batchcalculation_servlet?username=XXXX&password=XXX");

Όχι δεν εννοώ αυτό. Tο api τρέχει σε server όχι στο localhost. Εννοώ ότι το καλώ από το localhost.

 

Δημοσ.
3 ώρες πριν, k33theod είπε

Όχι δεν εννοώ αυτό. Tο api τρέχει σε server όχι στο localhost. Εννοώ ότι το καλώ από το localhost.

ok.

Μήπως δεν είναι εγκατεστημένο/ενεργοποιημένο το curl module στην php στους servers που δεν σου λειτουργεί ?

https://stackoverflow.com/questions/13433946/how-to-check-if-curl-is-enabled-or-disabled

 

Δημοσ.

Στο δικό μου host to είδα με phpinfo() είναι enabled. Εξάλου μου επιστρέφει Error.  Στο wordpress δεν έχω ιδέα. Φαίνεται να μην στέλνει καθόλου το request. Εκτελείται κανονικά το php file γιατί αν γράψω πχ echo 'hello' μου το επιστρέφει. 

Δημοσ.

Πιθανολογώ ό,τι, το error connection refused στο κόβει ο δικό σου host/server, αν έχεις πρόσβαση με ssh, γράψε του τον κανόνα

/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 7380 -j ACCEPT

και δοκίμασε πάλι.

Για wordpress ρίξε μία ματιά στα παρακάτω  >

https://wordpress.stackexchange.com/questions/293427/curl-how-to-send-and-fetch-data-in-wordpress

https://wordpress.org/support/topic/how-to-send-a-http-post-request-using-php-curl-and-wordpress

 

 

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...