Samen met ChatGPT was ik begonnen aan het maken van een API voor wat data die ik naar een endpoint wil sturen. Na uren en uren klooien zonder respons kom ik er achter dat ik het curlcommand 'niets doet' vanaf de externe server.
Als ik het curlcommand, nog zonder inhoud, post vanaf een terminal, is er direct reactie, maar zodra ik het in de php zet geeft de browser een time out.
Zie ik iets over het hoofd hier?
Het endpoint (ip) staat hier lokaal. Ik dacht nog even
duh, dus portfoward gedaan, maar dat maakt helemaal niets uit. Dat klopt toch? dat het niets uit maakt? het hoeft immers alleen maar hier te werken.
helemaal naar de basis dan wat mij betreft:
Echt veel minder kom ik er niet in kwijt, maar blijf een time out terugkrijgen.
Heb voor de zekerheid dus ook maar een ticket aangemaakt bij de hoster.
Doe ik nu iets helemaal verkeerd, of zou dit gewoon moeten reageren bij het endpoint?
Als ik het curlcommand, nog zonder inhoud, post vanaf een terminal, is er direct reactie, maar zodra ik het in de php zet geeft de browser een time out.
Zie ik iets over het hoofd hier?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| <?php echo "hi"; error_reporting(E_ALL); ini_set('display_errors', 1); $endpoint = 'http://192.168.108.144/jsonupload'; $jsonData = [ "pli" => [ "contactName" => $contactName, ], ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $endpoint); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($jsonData)); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/x-www-form-urlencoded']); $response = curl_exec($ch); if (curl_errno($ch)) { echo 'cURL error: ' . curl_error($ch); } else { echo $response; } curl_close($ch); $curlCommand = "curl -X POST -d 'mac=000002393F4F3B16&json=' \"$endpoint\""; exec($curlCommand, $output, $returnCode); echo "cURL Command: $curlCommand\n"; echo "cURL Output:\n"; echo implode("\n", $output); echo "\nReturn code from cURL command: $returnCode\n"; ?> |
Het endpoint (ip) staat hier lokaal. Ik dacht nog even

helemaal naar de basis dan wat mij betreft:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| <?php echo "hi"; error_reporting(E_ALL); ini_set('display_errors', 1); $endpoint = 'http://192.168.108.144/jsonupload'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $endpoint); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); if (curl_errno($ch)) { echo 'cURL error: ' . curl_error($ch); } else { echo $response; } curl_close($ch); $curlCommand = "curl -X POST -d 'mac=000002393F4F3B16&json=' \"$endpoint\""; exec($curlCommand, $output, $returnCode); echo "cURL Command: $curlCommand\n"; echo "cURL Output:\n"; echo implode("\n", $output); echo "\nReturn code from cURL command: $returnCode\n"; ?> |
Echt veel minder kom ik er niet in kwijt, maar blijf een time out terugkrijgen.
Heb voor de zekerheid dus ook maar een ticket aangemaakt bij de hoster.
Doe ik nu iets helemaal verkeerd, of zou dit gewoon moeten reageren bij het endpoint?
[ Voor 4% gewijzigd door paQ op 04-01-2024 15:11 ]
Ik doe niet aan bijgeloof. Dat brengt ongeluk.