Visualizzazione risultati 1 fino 7 di 7

Discussione: Errore HTTP Error 403: Forbidden su invio dati database

  1. #1
    chess64 non è connesso Neofita
    Data registrazione
    01-02-2020
    Messaggi
    4

    Predefinito Errore HTTP Error 403: Forbidden su invio dati database

    Buongiorno,
    ho un database su altervista a cui vorrei inviare i dati di un sensore di temperatura.
    Vorrei inviarli con un file php :
    import os
    import smbus
    import urllib.request
    from urllib.request import urlopen
    from datetime import datetime
    import socket
    import re

    urlopen("http://temp2020.altervista.org/StazioneMeteo/Hub/addata.php?temp="+temp+"&hum="+hum+"&pr="+press).r ead()

    mi restituisce l'errore :
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
    urllib.error.HTTPError: HTTP Error 403: Forbidden

    Preciso che utilizzando lo stesso ulr con una scheda nodemcu programmata tramite arduino funziona perfettamente.

    Forse il problema è il codice php in python ?
    grazie.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,270

    Predefinito

    Sicuro che l'URL sia corretto? Non sembra esistere...

    Comunque quel codice è python, non PHP (sono due linguaggi molto differenti).

    Ciao!

  3. #3
    chess64 non è connesso Neofita
    Data registrazione
    01-02-2020
    Messaggi
    4

    Predefinito

    scusa il link corretto è http://chess64.altervista.org/Stazio...Hub/addata.php
    che mi resituisce correttamente : No data posted with HTTP POST.
    hai ragione anche su python ( sono alle prime armi ) .
    Puoi darmi qualche indizio perchè mi ritorna Error 403: Forbidden ?
    grazie. ciao.

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    • Nel codice Python stai effettuando una chiamata HTTP GET: modificala in POST
    • verifica che l'URL sia corretto, quindi verifica che la chiamata che stai testando vada a buon fine (se dallo script non funziona, prova con strumenti dedicati a testare le API come Postman)
    • Una possibile spiegazione al 403 - Forbidden è che l'API richieda una qualche forma di autenticazione per l'inserimento dei dati che non le stai passando; avrebbe senso, altrimenti chiunque potrebbe effettuare una POST sul tuo sito e inserire dati fasulli

    I suggerimenti che do più spesso:


  5. #5
    chess64 non è connesso Neofita
    Data registrazione
    01-02-2020
    Messaggi
    4

    Predefinito

    grazie....ho QUASI-risolto con Node_red .
    Adesso riesco a connettermi al database......però mi aggiunge solo un record vuoto e il datestamp....
    debbo capire come scrivere bene l'url nella http request...il problema adesso è scrivere nel campo temp :
    così mi restituisce il record vuoto :
    http://chess64.altervista.org/StazioneMeteo/Hub/addata.php?temp="{{0}}
    ciao.

  6. #6
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Devi fare riferimento alla documentazione delle API che stai usando. Lì sarà indicato chiaramente come deve essere strutturata una richiesta per inserire dei dati.

    La mia intuizione è che questi vadano passati nel corpo della richiesta HTTP POST, non come parametri nell'URL.

    I suggerimenti che do più spesso:


  7. #7
    chess64 non è connesso Neofita
    Data registrazione
    01-02-2020
    Messaggi
    4

    Predefinito

    Sicuramente è come dici.
    studierò la materia...grazie davvero.
    ciao.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •