Ruby Net::HTTP POST କୁ ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ପଠାନ୍ତୁ
ସ୍ପଷ୍ଟ ପ୍ରକ୍ସି ସହିତ Ruby HTTP ସଂଯୋଗ କନଫିଗର କରନ୍ତୁ, ତାପରେ ଫର୍ମ ଡାଟା ଲକ୍ଷ୍ୟସ୍ଥାନକୁ ପଠାନ୍ତୁ।
ଫର୍ମର ଲକ୍ଷ୍ୟସ୍ଥାନ ଅନୁରୋଧରେ ଏବଂ ପ୍ରକ୍ସି ସଂଯୋଗ କନଫିଗରେସନରେ ରଖନ୍ତୁ। ପ୍ରକ୍ସିକୁ ଆପଣ ଚାହୁଁଥିବା URL ଥିବା ଏକ ବିଶେଷ ଫର୍ମ ଫିଲ୍ଡ ଆବଶ୍ୟକ ନାହିଁ, ଯଦି ଆପଣ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ୱେବସାଇଟର ୱେବ-ପ୍ରକ୍ସି ଇଣ୍ଟରଫେସ ବ୍ୟବହାର କରୁନାହାନ୍ତି।
Ruby ର Net::HTTP ପାଇଁ, କ୍ଲାଏଣ୍ଟ ସୃଷ୍ଟି କରିବା ସମୟରେ ଏକ ସ୍ପଷ୍ଟ 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 ତ୍ରୁଟି ସୃଷ୍ଟି କରିପାରେ। ପ୍ରତିକ୍ରିୟାର ସ୍ଥିତି ଏବଂ ଲକ୍ଷ୍ୟସ୍ଥାନର ଆବଶ୍ୟକତା ଯାଞ୍ଚ କରନ୍ତୁ: ପଦ୍ଧତି, ବିଷୟବସ୍ତୁ ପ୍ରକାର, ଫର୍ମ ଫିଲ୍ଡ, କୁକି ଏବଂ କୌଣସି ଅନୁରୋଧ ଟୋକେନ।
ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣ ଚ୍ୟାଲେଞ୍ଜ ପ୍ରକ୍ସିରୁ ଆସେ। ଆପ୍ଲିକେସନ ଲଗଇନ କିମ୍ବା ଅସ୍ୱୀକୃତ ଫର୍ମ ଲକ୍ଷ୍ୟସ୍ଥାନର। ସେମାନଙ୍କ ପ୍ରମାଣପତ୍ର ଅଲଗା ରଖନ୍ତୁ। ପ୍ରକ୍ସି କନଫିଗରେସନରେ ଲକ୍ଷ୍ୟସ୍ଥାନର ପାସୱାର୍ଡ ଯୋଡ଼ିବା ଦ୍ୱାରା ଲକ୍ଷ୍ୟସ୍ଥାନର ଲଗଇନ ପୂରଣ ହୋଇପାରିବ ନାହିଁ।
Squid ର ଫରୱାର୍ଡିଂ-ହେଡର ନିୟମ ଅନ୍ୟ ଏକ ସମ୍ଭାବ୍ୟ ଦ୍ୱନ୍ଦ୍ୱର ଉତ୍ସ। ସେମାନଙ୍କ ସର୍ଭର-ପାର୍ଶ୍ୱ ନୀତି ବୈଧ Ruby POST ନିର୍ମାଣଠାରୁ ଅଲଗା। ଫର୍ମ ଥରେ ବିଫଳ ହେବା କାରଣରୁ ସେୟାର କରାଯାଇଥିବା ପ୍ରକ୍ସିର ହେଡର ନିୟମ ବଦଳାନ୍ତୁ ନାହିଁ।
ପୁନଃପ୍ରୟାସ ପାଇଁ, ପ୍ରଥମ ଦାଖଲ ପୂର୍ବରୁ ପ୍ରକ୍ରିୟା ହୋଇଥାଇପାରେ କି ବିଚାର କରନ୍ତୁ। ହଜିଯାଇଥିବା ପ୍ରତିକ୍ରିୟା POST କେବେ ହେଁ ଆପ୍ଲିକେସନରେ ପହଞ୍ଚିନାହିଁ ବୋଲି ପ୍ରମାଣ ନୁହେଁ।