eleionos Δημοσ. 14 Ιουνίου 2020 Δημοσ. 14 Ιουνίου 2020 (επεξεργασμένο) Καλημέρα στην κοινότητα. Σε wordpess site έχω εγκαταστήσει το Insert PHP Code Snippet .Σε ένα post θέλω να εμφανίσω τα αποτελέσματα από το request που κάνω σε web service $url = 'http://myUrl/s1services'; $ch = curl_init($url); //The JSON data. $jsonData = array( 'service' => 'login', 'username' => 'username', 'password' => 'password', 'appid' => '256' ); //Encode the array into JSON. $jsonData = json_encode($jsonData); //Tell cURL that we want to send a POST request. curl_setopt($ch, CURLOPT_POST, 1); //Attach our encoded JSON string to the POST fields. curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); //Set the content type to application/json curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); //Set the compression type to gzip curl_setopt($ch,CURLOPT_ENCODING , "gzip"); //Execute the request $result = curl_exec($ch); //close connection curl_close($ch); echo $result; ?> Το response Που παίρνω είναι το παρακάτω. Αναφορά σε κείμενο {"success": true, "clientID":"9J8pHKvuKqrCQ69N9JL4HNLNLK5JH6mbDKD3Ld9HLKnsL75CILLaLsLqSqLbUMPGKbLKNrfLPLybDqH0KazPPLLNLaL7LK9vHG", "objs":[{"COMPANY" : "1000","COMPANYNAME" : "������� Demo ��","BRANCH" : "1000","BRANCHNAME" : "����� - ����","MODULE" : "13","MODULENAME" : "�������","REFID" : "47","REFIDNAME" : "����������� AE","USERID" : "1","FINALDATE" : "","ROLES" : "","XSECURITY" : "0","EXPTIME" : ""}], "ver":"5.00.520.11321", "sn":"01100313514211", "off":false, "pin":false, "appid":"256"}1 Κάποια πεδία όπως βλέπετε γυρνάνε σε binary mode.Ξέρει κανείς για ποιόν λόγο επιστρέφουν έτσι ;; Επεξ/σία 14 Ιουνίου 2020 από eleionos
dichagr Δημοσ. 14 Ιουνίου 2020 Δημοσ. 14 Ιουνίου 2020 Αρχικά, θα μπορούσα να σου προτείνω να χρησιμοποιήσεις τις συναρτήσεις του WordPress για το curl, δηλαδή το wp_remote_post & το wp_remote_get για να κάνεις τις κλήσεις που θες. Στα άλλα, μήπως φταίει το encoding για το πρόβλημα που έχεις; Μήπως να ορίσεις κάποιο encoding για να το δοκιμάσεις. Στο curl θα το έγραφες κάπως έτσι: curl_setopt($ch,CURLOPT_ENCODING , "utf-8"); στο wp_remote_get ή στο wp_remote_post θα το έγραφες έτσι: $data = wp_remote_post($url, array( 'headers' => array('Content-Type' => 'application/json; charset=utf-8'), 'body' => json_encode($array_with_parameters), 'method' => 'POST', 'data_format' => 'body', ));
eleionos Δημοσ. 14 Ιουνίου 2020 Μέλος Δημοσ. 14 Ιουνίου 2020 (επεξεργασμένο) 2 ώρες πριν, dichagr είπε Αρχικά, θα μπορούσα να σου προτείνω να χρησιμοποιήσεις τις συναρτήσεις του WordPress για το curl, δηλαδή το wp_remote_post & το wp_remote_get για να κάνεις τις κλήσεις που θες. Στα άλλα, μήπως φταίει το encoding για το πρόβλημα που έχεις; Μήπως να ορίσεις κάποιο encoding για να το δοκιμάσεις. Στο curl θα το έγραφες κάπως έτσι: curl_setopt($ch,CURLOPT_ENCODING , "utf-8"); στο wp_remote_get ή στο wp_remote_post θα το έγραφες έτσι: $data = wp_remote_post($url, array( 'headers' => array('Content-Type' => 'application/json; charset=utf-8'), 'body' => json_encode($array_with_parameters), 'method' => 'POST', 'data_format' => 'body', )); Καλήμερα Dimitris Hatimichalis O κώδικας που χρησιμοποίησα σύμφωνα με τα παραπάνω είναι ο παρακάτω <?php $data = array( 'service' => 'login', 'username' => 'demo', 'password' => 'demo', 'appid' => '56', 'method' => 'POST', 'data_format' => 'body' ); $url = 'myurl'; $response = wp_remote_post( $url, array( 'method' => 'POST', 'headers' => array('Content-Type' => 'application/json; charset=utf-8'), 'body' => json_encode($data)) ); if ( is_wp_error( $response ) ) { $error_message = $response->get_error_message(); echo "Something went wrong: $error_message"; } else { print_r( $response ); } ?> To response μου δίνει τα ίδια [body] => {"success": true, "clientID":"9J8p9JL2TLHZI6SbDKD1Gs5fHLHFOL5FQ4HmL59HLKnwR59D9JT6GKLISa1nId0bDZ1LNrLLP55HILHLG4XNG59PTL4bDqLrHLHqLKK", "objs":[{"COMPANY" : "1000","COMPANYNAME" : "������� Demo ��","BRANCH" : "1000","BRANCHNAME" : "����� - ����","MODULE" : "13","MODULENAME" : "�������","REFID" : "47","REFIDNAME" : "����������� AE","USERID" : "1","FINALDATE" : "","ROLES" : "","XSECURITY" : "0","EXPTIME" : ""}], "ver":"5.00.520.11321", "sn":"01100313514211", "off":false, "pin":false, "appid":"56"} Επεξ/σία 14 Ιουνίου 2020 από eleionos
eleionos Δημοσ. 17 Ιουνίου 2020 Μέλος Δημοσ. 17 Ιουνίου 2020 Στις 14/6/2020 στις 10:15 ΠΜ, dichagr είπε Αρχικά, θα μπορούσα να σου προτείνω να χρησιμοποιήσεις τις συναρτήσεις του WordPress για το curl, δηλαδή το wp_remote_post & το wp_remote_get για να κάνεις τις κλήσεις που θες. Στα άλλα, μήπως φταίει το encoding για το πρόβλημα που έχεις; Μήπως να ορίσεις κάποιο encoding για να το δοκιμάσεις. Στο curl θα το έγραφες κάπως έτσι: curl_setopt($ch,CURLOPT_ENCODING , "utf-8"); στο wp_remote_get ή στο wp_remote_post θα το έγραφες έτσι: $data = wp_remote_post($url, array( 'headers' => array('Content-Type' => 'application/json; charset=utf-8'), 'body' => json_encode($array_with_parameters), 'method' => 'POST', 'data_format' => 'body', )); με αυτήν γραμμή κώδικα λύθηκε το θέμα τελικά . header('Content-Type: application/json; charset=windows-1253');
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα