curl command vanaf website geeft time out

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
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?
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 8)7 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:
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.

Alle reacties


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 01:34

DataGhost

iPL dev

Hoe verwacht je precies vanaf een externe hoster/server/whatever bij het niet-internet-routable (en zeker niet unieke) lokale IP 192.168.108.144 uit te kunnen komen? Dit is onmogelijk, of je hebt je setup niet helemaal duidelijk uitgelegd. Maar aangezien je het over portforwards hebt vermoed ik dat dat IP bij jou thuis staat en de server niet? Vanaf welke machine werkt het wel "vanaf een terminal"?

Het kan ook gewoon zijn dat curl is uitgeschakeld in de php-config van de hoster.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 20:12

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Wat @DataGhost zegt, en wanneer dat gefixed is: Ik zie je een variabele $contactName gebruiken die nergens gedefinieerd is en $jsonData is geen json-data maar gewoon een (key/value) array en die gebruik je verder niet in je $curlCommand.

[ Voor 35% gewijzigd door RobIII op 04-01-2024 15:27 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
Mijn gedachte was:
Ik open deze file hier op een browser en daarmee ben ik al lokaal, en zou zo bij mijn endpoint moeten kunnen komen.
Als dat niet het geval is, heb ik portforwarding gebruikt om vanaf buiten bij het endpoint te komen.
dus mijnipadres:144 bijv.

Als ik via terminal bijv dit commando ingeef:
curl -X POST -d "mac=000002393F4F3B16&json=" mijnipadres:144/jsonupload dan geeft het endpoint direct reactie.

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
RobIII schreef op donderdag 4 januari 2024 @ 15:24:
Wat @DataGhost zegt, en wanneer dat gefixed is: Ik zie je een variabele $contactName gebruiken die nergens gedefinieerd is en $jsonData is geen json-data maar gewoon een (key/value) array en die gebruik je verder niet in je $curlCommand.
dat kwam voort uit de vele pogingen, en in de zoektocht waar ik klem loop steeds verder vereenvoudigd om er uiteindelijk achter te komen dat ik niet bij mijn endpoint aan kom.

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 01:34

DataGhost

iPL dev

PHP-code wordt op de server uitgevoerd, niet in je browser. Om "lokaal" te zijn heb je daar iets als JavaScript voor nodig wat je in de browser laat draaien. Maar met alle malware-shit, XSS en andersoortige exploits van tegenwoordig met de daaruit volgende genomen beveiligingsmaatregelen zal het enigszins lastig zijn om met een remote gehost script verbinding te maken met een lokaal gehoste service, zeker als je (nofi) nog op dit niveau zit.

[ Voor 19% gewijzigd door DataGhost op 04-01-2024 15:33 ]


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
DataGhost schreef op donderdag 4 januari 2024 @ 15:31:
PHP-code wordt op de server uitgevoerd, niet in je browser. Daar heb je iets als JavaScript voor nodig. Maar met alle malware-shit van tegenwoordig zal het enigszins lastig zijn om met een remote gehost script verbinding te maken met een lokaal gehoste service, zeker als je (nofi) nog op dit niveau zit.
noft hoor ;) ben enorme n00b
Maar gaat dit überhaupt nooit op deze wijze werken dan?

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 01:34

DataGhost

iPL dev

Nee. Tenzij je de webserver in je lokale netwerk zet :+

Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
DataGhost schreef op donderdag 4 januari 2024 @ 15:34:
Nee. Tenzij je de webserver in je lokale netwerk zet :+
kak...

ok en als ik die API laat voor wat het is en het via een andere methode probeer?
Voorbeeld:
momenteel gebruik ik een printtopdf script hiervoor. De data velden 'print' ik naar een pdf, die opent in de browser en die kan ik dan vervolgens afdrukken.Die data wordt op enig moment dan ergens 'lokaal gemaakt'? (Jip Janneke) Mocht dat zo zijn, is het dan te converteren naar mijn JSON layout en het curl commando lokaal uit te voeren?

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • +1 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 01:34

DataGhost

iPL dev

Nou eh, vorige post was een beetje kort door de bocht. Met een portforward kan je het inderdaad wel voor elkaar krijgen, mits de hoster je curl-requests laat doen natuurlijk. Maar die heb je volgens mij ook niet goed opgezet, en nogmaals nofi maar wederom met je kennisniveau zou ik dat afraden, ik weet niet wat voor service je lokaal hebt draaien, hoe secure die is, hoe secure jij die kan maken en of je die naar de hele buitenwereld open wilt zetten.

Als je van copy/pasten houdt kan je je pagina een compleet curl-commando laten samenstellen wat je dan zelf in de terminal kan plakken. Dat is wel een snelle oplossing, maar niet super-praktisch. Wel makkelijker dan min of meer hetzelfde via een pdf 8)7

[ Voor 4% gewijzigd door DataGhost op 04-01-2024 15:41 ]


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
DataGhost schreef op donderdag 4 januari 2024 @ 15:40:
Nou eh, vorige post was een beetje kort door de bocht. Met een portforward kan je het inderdaad wel voor elkaar krijgen, mits de hoster je curl-requests laat doen natuurlijk. Maar die heb je volgens mij ook niet goed opgezet, en nogmaals nofi maar wederom met je kennisniveau zou ik dat afraden, ik weet niet wat voor service je lokaal hebt draaien, hoe secure die is, hoe secure jij die kan maken en of je die naar de hele buitenwereld open wilt zetten.

Als je van copy/pasten houdt kan je je pagina een compleet curl-commando laten samenstellen wat je dan zelf in de terminal kan plakken. Dat is wel een snelle oplossing, maar niet super-praktisch. Wel makkelijker dan min of meer hetzelfde via een pdf 8)7
Momenteel:
website, invulvelden, ik vul in, sla op, staat in database als ticket
Ik open ticket, klik op PRINT, printtopdf opent een label in de browser en ik druk af.

moet worden:
website, invulvelden, ik vul in, sla op, staat in database als ticket
Ik scan de barcode van een e-ink display (macadres), druk op SEND, data wordt verzonden naar endpoint

Laatstgenoemde is niet encrypted noch secure.

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 01:34

DataGhost

iPL dev

Ik kan je niet tegenhouden natuurlijk, als je de portforward werkend krijgt kan je (en iedereen) dus gewoon met jouw lokale service praten en zou het moeten werken. Maar dat raad ik dus af zonder adequate beveiliging.

Aangezien er nog een verdere (web)interface aan lijkt te zitten blijf je daar van afhankelijk denk ik, dan lijkt me met kleine stapjes naar je eindresultaat werken makkelijker. Dus persoonlijk zou ik lekker beginnen met het serverside (in php dus) laten samenstellen van wat je allemaal in dat curl-commando wilt zetten, in plaats van dat naar die onbereikbare service te sturen. Als je dat voor elkaar hebt en je het werkend hebt met handmatig het resultaat copy/pasten, kan je tegen de tijd dat je dat zat bent eens gaan nadenken over hoe je jouw eigen stap (op een veilige manier!) kan wegautomatiseren.

Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
Is dat niet ook wat een printtopdf doet? het server-side maken en dan lokaal het resultaat uitspugen?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div id="print_pdf_label" style="display:none;">
        
    <div id="pl_contactName"><?=$ticket->contactName?></div>
    <div id="pl_contactPerson"><?php if ($ticket->mmNaam) { echo $ticket->mmNaam; } else if ($ticket->contact()) { echo ($ticket->contact()->contactperson) ? $ticket->contact()->contactperson : $ticket->contact()->contactname1; }?></div>
    <div id="pl_paid"><?php echo ($ticket->invoice() && $ticket->invoice()->isPaid()) ? "Ja" : "";?></div>
    <div id="pl_ambient"><?=$ambientString?></div>
    <div id="pl_rma"><?=$RMAString?></div>
    <div id="pl_product"><?php if ($ticket->product()) echo $ticket->product()->name;?></div>
    <div id="pl_color"><?php if ($ticket->color) echo $ticket->color;?></div>
    <div id="pl_deadline"><?php if ($ticket->deadlineDateToString()) echo $ticket->deadlineDateToString();?></div>
    <div id="pl_company"><?php if ($ticket->mmBedrijf) { echo $ticket->mmBedrijf; } else if ($ticket->contact() && $ticket->contact()->contactperson) echo $ticket->contact()->contactname1;?></div>
    <div id="pl_telephone"><?php if ($ticket->mmTelefoon) { echo $ticket->mmTelefoon; } else if ($ticket->contact()) echo $ticket->contact()->contacttelephone;?></div>
    <div id="pl_creationDate"><?php if ($ticket->creationDateToString()) echo $ticket->creationDateToString();?></div>
    <div id="pl_invoiceNumber"><?php if ($ticket->invoice()) echo $ticket->invoice()->invoicenumber;?></div>
    <div id="pl_comments"><?php if ($ticket->comments) echo $ticket->comments;?></div>

</div>


m.a.w. kan ik niet 'teren' op die integratie om hetzelfde te bereiken voor mijn json output?

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 01:34

DataGhost

iPL dev

Ja/nee. Is ook onwenselijk. Anders zou bijvoorbeeld tweakers.net met random apparaten in jouw thuisnetwerk kunnen praten, zoals bijvoorbeeld je smart-verlichting. Het is maar goed dat dat niet zomaar kan.

Als een webserver een webpagina maakt wordt deze gewoon naar je browser gestuurd (wordt gedownload) waarna je webbrowser kijkt wat erin staat en dat op het scherm laat zien. Daarbij doet de webserver niks op jouw machine/netwerk, dat doet jouw machine zelf. Idem voor een PDF, als die serverside gemaakt wordt wordt deze gewoon als bestand naar jou gestuurd. Als je vanuit de browser een webpagina print als pdf (zo ziet het eruit aan de code te zien) is deze al als normale webpagina gedownload en vervolgens wordt daar op jouw computer pas een pdf van gemaakt, nog steeds zonder verdere interactiemogelijkheden. Dus je bent beperkt tot het weergeven van informatie op jouw scherm waarna jij zelf een handmatige interactie zal moeten doen om die informatie op een andere plek in jouw netwerk te krijgen.

Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
DataGhost schreef op donderdag 4 januari 2024 @ 16:01:
Ja/nee. Is ook onwenselijk. Anders zou bijvoorbeeld tweakers.net met random apparaten in jouw thuisnetwerk kunnen praten, zoals bijvoorbeeld je smart-verlichting. Het is maar goed dat dat niet zomaar kan.

Als een webserver een webpagina maakt wordt deze gewoon naar je browser gestuurd (wordt gedownload) waarna je webbrowser kijkt wat erin staat en dat op het scherm laat zien. Daarbij doet de webserver niks op jouw machine/netwerk, dat doet jouw machine zelf. Idem voor een PDF, als die serverside gemaakt wordt wordt deze gewoon als bestand naar jou gestuurd. Als je vanuit de browser een webpagina print als pdf (zo ziet het eruit aan de code te zien) is deze al als normale webpagina gedownload en vervolgens wordt daar op jouw computer pas een pdf van gemaakt, nog steeds zonder verdere interactiemogelijkheden. Dus je bent beperkt tot het weergeven van informatie op jouw scherm waarna jij zelf een handmatige interactie zal moeten doen om die informatie op een andere plek in jouw netwerk te krijgen.
duidelijk

Ma.w.
een tussenstap / kortste slag
zou nu dus ook kunnen zijn:

verzamel de data, en ipv een pdf, laat de browser het complete curl commando presenteren (niet uitvoeren) copy, paste in een commandoscherm, enter.

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 20:12

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

DataGhost schreef op donderdag 4 januari 2024 @ 15:51:
Ik kan je niet tegenhouden natuurlijk, als je de portforward werkend krijgt kan je (en iedereen) dus gewoon met jouw lokale service praten en zou het moeten werken. Maar dat raad ik dus af zonder adequate beveiliging.
Je zou daar natuurlijk nog IP restricties op kunnen zetten zodat je exclusief van je hoster's bak naar die server kunt en niet het hele internet erbij kan.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
RobIII schreef op donderdag 4 januari 2024 @ 16:21:
[...]

Je zou daar natuurlijk nog IP restricties op kunnen zetten zodat je exclusief van je hoster's bak naar die server kunt en niet het hele internet erbij kan.
Dat was mijn volgende gedachte om het in elk geval wat veiliger te maken.

Maar het uberhaupt werkend krijgen zou al heel wat zijn :S

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • +2 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Even 1 stap terug: waarom moet dat stapje in PHP en met name op een externe server?

Of 2 stapjes terug: WTFwat wil je bereiken en begin met een plan. :>

[ Voor 31% gewijzigd door Voutloos op 04-01-2024 17:09 ]

{signature}


Acties:
  • +1 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 01:34

DataGhost

iPL dev

Voutloos schreef op donderdag 4 januari 2024 @ 17:06:
Even 1 stap terug: waarom moet dat stapje in PHP en met name op een externe server?

Of 2 stapjes terug: WTF wil je bereiken en begin met een plan. :>
Het klinkt als een bestaand systeem met papieren ordersheets ofzo en dat zullen nu wel e-ink kaartjes/schermpjes geworden zijn in verder hetzelfde systeem.

Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
DataGhost schreef op donderdag 4 januari 2024 @ 17:10:
[...]

Het klinkt als een bestaand systeem met papieren ordersheets ofzo en dat zullen nu wel e-ink kaartjes/schermpjes geworden zijn in verder hetzelfde systeem.
@Voutloos het is exact dat

Via de openepaperlink AP van een medetweaker :)

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Ah, 15:44 is vrij helder, alhoewel ik mis wat het e-ink display er opeens mee te schaften heeft. Dus klinkt nog steeds beetje als ‘noem 4 apparaten en verplaats data op minstens 3 manieren, omdat eh, omdat het kan’ :p

{signature}


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
Voutloos schreef op donderdag 4 januari 2024 @ 17:19:
Ah, 15:44 is vrij helder, alhoewel ik mis wat het e-ink display er opeens mee te schaften heeft. Dus klinkt nog steeds beetje als ‘noem 4 apparaten en verplaats data op minstens 3 manieren, omdat eh, omdat het kan’ :p
het e-ink display dient ter vervanging van het papieren label

Nu genereer ik de jsoncode handmatig en via een scriptje maak ik daar een curl command van. Dat had ik graag geautomatiseerd. Net als het papieren label nu ook geautomatiseerd is.

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Mijn eerste vraag blijft dan valide?

Je bent op locatie. Op die locatie zijn tickets te vinden. Met een apparaat dat je vast hebt of voor je neus staat scan je zo’n ticket. Op die locatie is een server die je wil bereiken. Rode draad: alles speelt op locatie. Waarom haal je een externe server erbij?
Qua performance stelt dit 0 eisen, dus zet dan gewoon een oude laptop op locatie om PHP te hosten als dat de enige programmeertaal gaat zijn, als dat ongespecificeerde apparaat dat scant al uberhaupt niet zelfstandig iets kan.

[ Voor 8% gewijzigd door Voutloos op 04-01-2024 20:31 ]

{signature}


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
Voutloos schreef op donderdag 4 januari 2024 @ 20:30:
Mijn eerste vraag blijft dan valide?

Je bent op locatie. Op die locatie zijn tickets te vinden. Met een apparaat dat je vast hebt of voor je neus staat scan je zo’n ticket. Op die locatie is een server die je wil bereiken. Rode draad: alles speelt op locatie. Waarom haal je een externe server erbij?
Qua performance stelt dit 0 eisen, dus zet dan gewoon een oude laptop op locatie om PHP te hosten als dat de enige programmeertaal gaat zijn.
Dat zijn dus precies de zaken waar ik geen kaas van gegeten heb.
Ik ben daarom al twee hele dagen bezig om data van een webform (want daar maak ik al die tickets sowieso aan) aan een curl post te krijgen, vergeefs, maar maak ik samen met chatgtp binnen 2 uur een werkende applicatie in python waar ik alle velden even invul en met een druk op de knop staan ze op het label.

Het hele nut van die online applicatie met tickets is dat ik track kan houden van bezigheden, hoeveelheden, en de historie weer kan opzoeken.

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • +3 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Je demonstreert precies waarom ik als ontwikkelaar nog niet bang ben om geheel vervangen te worden door chatGpt. ;)

Alles t/m ticket lijkt niet relevant. Dat stuk werkt, top, strikje er om.

Woorden als ‘ongespecificeerd’ zouden moet triggeren dat je het toelicht, maar misschien is dat te passief aggressief gevraagd. Dus expliciet: Waarmee scan je? Kan dat ding zelf niet een scripttaal doen?
En hoeveel controle heb je over dat json endpoint?

{signature}


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
Voutloos schreef op donderdag 4 januari 2024 @ 20:43:
Je demonstreert precies waarom ik als ontwikkelaar nog niet bang ben om geheel vervangen te worden door chatGpt. ;)

Alles t/m ticket lijkt niet relevant. Dat stuk werkt, top, strikje er om.

Woorden als ‘ongespecificeerd’ zouden moet triggeren dat je het toelicht, maar misschien is dat te passief aggressief gevraagd. Dus expliciet: Waarmee scan je? Kan dat ding zelf niet een scripttaal doen?
En hoeveel controle heb je over dat json endpoint?
Wat ik scan is puur de barcode van het esl label; het macadres.
Het voegt verder weinig toe aan de casus. (het maakt het hooguit net iets sneller)

Voor zover ik kan beoordelen heb ik geen controle over het endpoint. Ik voed het met een een curl commando met json data (en macadress) en dat is dat.



wellicht ten overvloede; het esl label systeem heb ik aangeschaft ter vervanging van de papieren labels. De printer daarvan heeft kuren, en gezien het labelformaat is vervanging erg duur (brother industriele labelprinters bijv) en daarbij zijn de printmedia stervensduur geworden.
De papieren labels 'rollen' nu dus uit mijn browser applicatie / ticketsysteem. Zeg maar bonnetjes in een volgorde, net als in een keuken bestellingen worden afgehandeld.
Het label gaat in een bakje, samen met de order. Zo blijft alles een beetje op zijn plek bewaard.

De esllabels passen precies in een bakje (transparant ook) dus het geeft me een minstens zo goed overzicht en de inhoud is bovendien dynamisch.

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Papier en printers zuigen dure harige kamelenballen, dus je hebt iets moderns dat barcode toont. Check.
De werking van dat endpoint en dus laatste stap staat vast. Check.
De informatie die in de barcode zit, wil je met wat opsmuk naar endpoint. Checkerdecheckcheck.

Blijven de echte vragen onbeantwoord: Waarmee scan je? Kan dat ding zelf niet een scripttaal doen?

Je hebt een apparaat dat de barcode herkent, en blijkbaar iets met netwerk of browser kan doen. Lijkt me sterk dat dat magische apparaatje niet die paar eenvouidige regeltjes voor het bouwen van de json kan doen en vervolgens het POST request naar endpoint.

{signature}


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
goedkoopste van de goedkoopste scanner :+
gewoon als 'toetsenbord' invoer

https://www.amazon.de/gp/...tle_o01_s00?ie=UTF8&psc=1
(Hij is in het echt nog lelijker dan hier op de foto)

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 20:12

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

paQ schreef op vrijdag 5 januari 2024 @ 10:25:
goedkoopste van de goedkoopste scanner :+
gewoon als 'toetsenbord' invoer
Ja, maar die scanner hangt ergens aan he? Dat is waar @Voutloos op doelt. Dáár kun je (potentieel) je code op uitvoeren ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
RobIII schreef op vrijdag 5 januari 2024 @ 11:25:
[...]

Ja, maar die scanner hangt ergens aan he? Dat is waar @Voutloos op doelt. Dáár kun je (potentieel) je code op uitvoeren ;)
als in:

Ik scan een barcode in mijn webomgeving waar een url (curl commando) in zit, komt in geheugen van scanner, daarna scan ik het macadress en 'scanner' stuurt het curl commando?
(of in andere volgorde, maar dat principe?)

edit: in QR dan wel

[ Voor 6% gewijzigd door paQ op 05-01-2024 12:12 ]

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Zo moeilijk is de vraag toch niet? Laatste poging, anders gaat topic in mn negeerlijst:

Cool, dus de scanner emuleert het typen. Dat typen gebeurt op De Machine Die Niet Genoemd Mag Worden, laten we dat ding Voldemort noemen.

Kan Voldemort niet gewoon een script in terminal draaien die oneindig de input uitleest en een POST doet?

{signature}


Acties:
  • 0 Henk 'm!

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 21:55
Voutloos schreef op vrijdag 5 januari 2024 @ 12:43:
Zo moeilijk is de vraag toch niet? Laatste poging, anders gaat topic in mn negeerlijst:

Cool, dus de scanner emuleert het typen. Dat typen gebeurt op De Machine Die Niet Genoemd Mag Worden, laten we dat ding Voldemort noemen.

Kan Voldemort niet gewoon een script in terminal draaien die oneindig de input uitleest en een POST doet?
sja naja ik wil je vragen graag beantwoorden hoor, maar kan nog niet helemaal de vinger leggen op wat je eigenlijk wil weten anders dan waar ik al antwoord op gegeven had.

van voor af aan:
1. ik open een website in mijn browser waar mijn 'tickets' staan (kan ipad zijn, kan computer zijn)
2. klik op nieuw
3. ik voer de velden in, sla op, en druk op PRINT
4. browser opent een PDF file met alle info die ik net heb ingevoerd in een bepaalde layout
5. ik duk dat af op een bonnenprinter.

stap 4 en 5 wil ik dus vervangen voor een ESL label.
Op het ESL label staat een barcode (= macadres). Omdat macadressen kut zijn om over te schrijven, dan wel te copy pasten na opzoeken, scan ik met "Tera 5100" barcode scanner het macadres, zodat ik dat niet hoef op te zoeken.
De scanner hangt aan mijn Mac Mini M2 en wordt daar gezien als toetsenbord / invoerapparaat.

Al die data moet dan worden samengevouwen tot een curl commando welke ik naar het endpoint kan sturen zodat de ingevoerde data verschijnt op het esl label met eerder gescand macadres.



Op die laatste stap loop ik dus vooralsnog vast.

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


Acties:
  • 0 Henk 'm!

Anoniem: 80910

Ze bedoelen dat 3, 4 en 5 1 commando kan worden, want bij print heb je het Mac adres en die wil je toch opslaan?
Pagina: 1