Κρατήστε τον προορισμό της φόρμας στο αίτημα και τον διακομιστή μεσολάβησης στη διαμόρφωση της σύνδεσης. Ο διακομιστής μεσολάβησης δεν χρειάζεται ειδικό πεδίο φόρμας με το URL που θέλετε, εκτός αν χρησιμοποιείτε τη διεπαφή web-proxy ενός συγκεκριμένου ιστότοπου.

Για το Net::HTTP της Ruby, μπορεί να δοθεί ρητός διακομιστής μεσολάβησης HTTP κατά τη δημιουργία του πελάτη:

require 'net/http'

uri = URI('https://example.com/form')
http = Net::HTTP.new(uri.hostname, uri.port,
                     '203.0.113.10', 8080)
http.use_ssl = true
http.open_timeout = 5
http.read_timeout = 10
request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data('message' => 'hello')
response = http.start { |session| session.request(request) }

Ο διακομιστής μεσολάβησης είναι ενδεικτικός· υποψήφιοι HTTP για επιτρεπόμενες δοκιμές δημόσιων φορμών υπάρχουν στη λίστα διακομιστών μεσολάβησης HTTP. Το τελικό σημείο της φόρμας πρέπει να αντικατασταθεί από υπηρεσία που προορίζεται να δέχεται την υποβολή. Η τεκμηρίωση διακομιστή μεσολάβησης του Net::HTTP περιγράφει επίσης διαπιστευτήρια και ρυθμίσεις που προέρχονται από το περιβάλλον.

Διαβάστε την απάντηση πριν κατηγορήσετε τον διακομιστή μεσολάβησης

Ένας διακομιστής που απορρίπτει μια φόρμα μπορεί να παράγει σφάλμα HTTP αφού η διαδρομή μέσω του διακομιστή μεσολάβησης λειτούργησε σωστά. Ελέγξτε την κατάσταση της απάντησης και τις απαιτήσεις του προορισμού: μέθοδο, τύπο περιεχομένου, πεδία φόρμας, cookies και τυχόν token αιτήματος.

Μια πρόκληση ελέγχου ταυτότητας διακομιστή μεσολάβησης προέρχεται από τον διακομιστή μεσολάβησης. Η σύνδεση σε εφαρμογή ή μια απορριφθείσα φόρμα ανήκουν στον προορισμό. Κρατήστε τα διαπιστευτήριά τους χωριστά. Η προσθήκη κωδικού προορισμού στη διαμόρφωση του διακομιστή μεσολάβησης δεν μπορεί να ικανοποιήσει τη σύνδεση στον προορισμό.

Οι κανόνες κεφαλίδων προώθησης του Squid είναι άλλη πιθανή πηγή σύγχυσης. Η πολιτική τους στην πλευρά του διακομιστή είναι ξεχωριστή από την κατασκευή έγκυρου POST της Ruby. Μην αλλάζετε τους κανόνες κεφαλίδων ενός κοινού διακομιστή μεσολάβησης μόνο επειδή η φόρμα απέτυχε μία φορά.

Για επαναλήψεις, σκεφτείτε αν η πρώτη υποβολή μπορεί να έχει ήδη επεξεργαστεί. Μια χαμένη απάντηση δεν αποδεικνύει ότι ένα POST δεν έφτασε ποτέ στην εφαρμογή.

Σχετικά άρθρα