6
Facendo clic su un pulsante in un modulo, verrà inviata una richiesta POST che verrà gestita dal seguente codice.Come fare una richiesta POST all'interno del codice Sinatra?
post '/register' do
#send post request to http://www.randomsite.com
#parse response
#do something with it
@user = User.first(:name => params['regUsername'])
if @user == nil
@user = User.create(
:name => params['regUsername'],
:pass => Password.create(params['regPassword']),
:email => params['regEmail'],
:created_date => Time.now
)
redirect '/'
else
"User already exists."
end
end
Come posso inviare un'altra richiesta POST a un sito Web diverso dal codice Ruby?
Come posso inviare più parametri insieme alla richiesta di post utilizzando Net :: HTTP? – Takkun
@Takkun Questo è mostrato nella riga 13 dell'esempio collegato. –
Fare attenzione a richiedere da un altro sito durante l'elaborazione per la richiesta di un cliente. Se quel secondo sito ha qualche ritardo, il tuo cliente lo vedrà e incolperà il tuo codice, server o sito. Invece di farlo durante la richiesta, provare a farlo in anticipo se possibile e memorizzare nella cache il risultato o memorizzare i metadati in un database locale in cui può essere rapidamente restituito al chiamante. Esistono numerosi [client HTTP per Ruby] (https://www.ruby-toolbox.com/categories/http_clients) che possono essere utilizzati per questo. –