Rilasciato nuovo FB HTTPClient

Attenzione !I messaggi sul forum potrebbero essere modificati dal nostro staff. La data e l'ora dei messaggi potrebbe non essere quella di invio ma quella di moderazione da parte dello staff. Grazie per l'attenzione.

Home Forum Programmazione IEC 61131 (LogicLab) Rilasciato nuovo FB HTTPClient

Questo argomento contiene 4 risposte, ha 2 partecipanti, ed è stato aggiornato da  Sergio Bertana 3 settimane, 3 giorni fa.

Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
  • Autore
    Articoli
  • #44043

    Sergio Bertana
    Amministratore del forum

    Il FB HTTPGetPage si è evoluto ora è diventato un vero client HTTP quindi ne abbiamo cambiato il nome in HTTPClient (Estratto manuale). E’ stata aggiunta la possibilità di inviare parametri sia in GET che in POST e di ricevere in risposta pagine di qualsiasi lunghezza, in caso di pagine molto grandi i dati di pagina ricevuti possono essere trasferiti anche su file.

    Allego al topic un programma di esempio (Download) con il nuovo FB, nell’esempio viene eseguita la richiesta di una pagina sul sito Altervista, il programma passa in GET o POST i parametri Dividend e Divisor ad uno script PHP che esegue la divisione tra i valori passati. E’ possibile testare il funzionamento dello script direttamente da qui. Se lo script è attivo viene ritornata una pagina con: The result is: 50.

    E’ ovvio che si può testare lo script modificando i valori nell’indirizzo del browser ottenendo risultati diversi. Lo scopo del FB è proprio questo appoggiarsi da programma SlimLine su di un servizio web nel cloud per fare eseguire operazioni.

    #48327

    Marcello
    Partecipante

    Stò usando con successo la FB HTTPClient e ora che ci sto prendendo gusto, vorrei poter usare questa FB per configurare via HTTP dei dispositivi connessi alla rete, in particolare cambiare l’indirizzo IP, settare dei parametri ecc… Ho richiesto ad un nostro fornitore i comandi per cambiare l’indirizzo IP di alcune sonde (KMTronic) e mi hanno inviato questa serie di comandi (compreso quello di reboot).

    Cambio IP:

    POST /net_config.htm HTTP/1.1
    Host: 192.168.1.199
    Connection: keep-alive
    Content-Length: 57
    Cache-Control: max-age=0
    Authorization: Basic YWRtaW46YWRtaW4=
    Origin: http://192.168.1.199
    Upgrade-Insecure-Requests: 1
    Content-Type: application/x-www-form-urlencoded
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
    Referer: http://192.168.1.198/net_config.htm
    Accept-Encoding: gzip, deflate
    Accept-Language: en-US,en;q=0.9,bg;q=0.8
    ip=192.168.1.190&gw=192.168.1.1&sub=255.255.255.0&htpt=80

    Reboot:

    GET /reboot.cgi HTTP/1.1\r\nAuthorization: Basic YWRtaW46YWRtaW4=\r\nAccept: */*\r\n\r\n

    Ho configurato l’FB in questo modo:

    Cambio IP:

    Method: 1
    HostAddress: 192.168.1.199
    HostName:192.168.1.198
    HostPort:80
    Page:net_config.htm HTTP/1.1
    Request: ip=192.168.1.190&gw=192.168.1.1&sub=255.255.255.0&htpt=80
    DBSize:57

    Reboot:

    Method:0
    HostAddress: 192.168.1.199
    HostName:192.168.1.198
    HostPort:80
    Page: reboot.cgi HTTP/1.1\r
    Request: nAuthorization: Basic YWRtaW46YWRtaW4=\r\nAccept: */*\r\n\r\n
    DBSize:61

    Ho “tradotto” bene?

    #48330

    Sergio Bertana
    Amministratore del forum

    Vedo un po di idee confuse…

    La richiesta di set parametri è una richiesta in POST, quindi Method: 1 è corretto, ma HostAddress e HostName devono essere l’indirizzo IP del server non possono essere diversi… al limite HostName potrebbe essere il nome dell’host nel caso di server multidominio.

    In Page devi mettere solo la pagina HTPP/1.1 lo mette in automatico il FB.

    In Request hai messo correttamente i dati richiesti, ma DBSize mettilo molto più grande (Metterei 1000).

    Vedo nell’esempio che è citato il campo Authorization: Basic YWRtaW46YWRtaW4=, questo a naso mi sembra un campo da passare in header alla richiesta per abilitare il comando di set parametri. Quindi passa al parametro Header:=ADR(Authorization: Basic YWRtaW46YWRtaW4=).

    Il resto sembra essere Ok, ma ti consiglio di provare il comando con programmi come Insomnia o Postman, e quando il comando funziona spia con Wireshark cosa passa così da poterlo confrontare con quello che genera l’FB HTTPClient.

    Più semplice è il comando di reboot, un semplice comando GET

    Method:0
    HostAddress: 192.168.1.199
    HostName:192.168.1.199
    HostPort:80
    Page: reboot.cgi
    Request: Authorization: Basic YWRtaW46YWRtaW4=

    #48336

    Marcello
    Partecipante

    Sulla FB non vedo il parametro Header, la mia HTTPClient l’ho presa dalla libreria eLLabNetworkLib_B210.plclib.

    #48338

    Sergio Bertana
    Amministratore del forum

    Ho pubblicato la nuova versione di libreria puoi scaricarla dalla sezione download.

Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)

Devi essere loggato per rispondere a questa discussione.