ପ୍ରତ୍ୟେକ ପ୍ରକ୍ସି ସେସନ ପାଇଁ ଏକ Ruby Mechanize ଏଜେଣ୍ଟ ରଖନ୍ତୁ
Ruby Mechanize ଏଜେଣ୍ଟର ପ୍ରକ୍ସି ଥରେ ସେଟ କରନ୍ତୁ, ସମ୍ବନ୍ଧିତ ଅନୁରୋଧ ପାଇଁ ପୁନର୍ବାର ବ୍ୟବହାର କରନ୍ତୁ, ଏବଂ କୁକି ସ୍ଥିତି ଓ ସ୍ଥାୟୀ ସଂଯୋଗକୁ ସଚେତନଭାବେ ସୀମିତ ରଖନ୍ତୁ।
ଯଦି କାର୍ଯ୍ୟ HTTP ପ୍ରତିକ୍ରିୟା ଯାଞ୍ଚ କରିବା ଏବଂ ସାଧାରଣ ଲିଙ୍କ ଅନୁସରଣ କରିବା, ତେବେ ସର୍ବଦା ପୂର୍ଣ୍ଣ ବ୍ରାଉଜର ଆବଶ୍ୟକ ନୁହେଁ। Ruby Mechanize ସେହି ଅନୁରୋଧଗୁଡ଼ିକ କରୁଥିବା ଏଜେଣ୍ଟ ଉପରେ ପ୍ରକ୍ସି ପ୍ରକାଶ କରେ:
agent = Mechanize.new('office-route')
begin
agent.set_proxy('proxy.example', 8080)
page = agent.get('https://www.example.com/')
puts page.code
ensure
agent.shutdown
endଏହା mechanize ଲାଇବ୍ରେରୀ ଲୋଡ ହୋଇଛି ବୋଲି ଧରିନିଏ। ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣ ବିନା ଅନୁମତିପ୍ରାପ୍ତ ସାର୍ବଜନୀନ ପୃଷ୍ଠା ଯାଞ୍ଚ ପାଇଁ HTTP ପ୍ରକ୍ସି ତାଲିକା ଉଦାହରଣ ପାଇଁ ଉପଯୁକ୍ତ host/port ମୂଲ୍ୟ ଦିଏ। proxy ପଦ୍ଧତି endpoint ଆବଶ୍ୟକ କଲେ ବ୍ୟବହାରକାରୀ ନାମ ଓ ପାସୱାର୍ଡକୁ ଇଚ୍ଛାଧୀନ ତୃତୀୟ ଓ ଚତୁର୍ଥ ଆର୍ଗୁମେଣ୍ଟ ଭାବରେ ଗ୍ରହଣ କରେ।
ଏକ ସମାନ ବ୍ରାଉଜିଂ ସେସନର ଅନୁରୋଧ ପାଇଁ ସେଟ ହୋଇଥିବା ଏଜେଣ୍ଟକୁ ପୁନର୍ବାର ବ୍ୟବହାର କରନ୍ତୁ। ଏହା କୁକି ଓ ଇତିହାସ ସହିତ ନେଟୱାର୍କ ସେଟିଂ ମଧ୍ୟ ବହନ କରେ। ଏକ୍ଜିଟ ପ୍ରକ୍ସି ବଦଳାଇବା ନିଜେ ନୂଆ ପରିଚୟ ସୃଷ୍ଟି କରେ ନାହିଁ କିମ୍ବା ଲଗଇନ କୁକି ଫିଙ୍ଗେ ନାହିଁ।
ଅନେକ ପ୍ରକ୍ସି ସେସନ ପାଇଁ, କାମ ଚାଲିଥିବା ସମୟରେ ଏକ ଅଂଶୀଦାର ଏଜେଣ୍ଟ ବଦଳାଇବା ପରିବର୍ତ୍ତେ ପ୍ରତ୍ୟେକକୁ ନିଜର ଏଜେଣ୍ଟ ଦିଅନ୍ତୁ। ପୃଥକ SSL ସଂଯୋଗ ଆବଶ୍ୟକ ହେଲେ ଲାଇବ୍ରେରୀ ଅନନ୍ୟ ସଂଯୋଗ ନାମ ମଧ୍ୟ ଦସ୍ତାବେଜ କରେ; ଉଦାହରଣର କନଷ୍ଟ୍ରକ୍ଟର ନାମ ସେହି ଚୟନକୁ ସ୍ପଷ୍ଟ କରେ।
ସମ୍ବନ୍ଧିତ URL ଯାଞ୍ଚକୁ ପ୍ରକ୍ସି ଅନୁସାରେ ଗୋଷ୍ଠୀଭୁକ୍ତ କଲେ ଅନାବଶ୍ୟକ ପୁନଃବିନ୍ୟାସ କମିପାରେ। ଫଳାଫଳକୁ ଯେଉଁ ପଥ ଓ URL ଏହା ଉତ୍ପାଦନ କରିଛି ସେଥି ସହିତ ରଖନ୍ତୁ, ରିଡାଇରେକ୍ଟ ଓ ତ୍ରୁଟି ପ୍ରତିକ୍ରିୟା ସହିତ।
Mechanize ବ୍ରାଉଜରର JavaScript ନିଷ୍ପାଦନ ପୁନରୁତ୍ପାଦନ କରେ ନାହିଁ। ପରୀକ୍ଷଣାଧୀନ ଆଚରଣ ସ୍କ୍ରିପ୍ଟ, ରେଣ୍ଡରିଂ କିମ୍ବା ବ୍ରାଉଜର-ନିର୍ଦ୍ଦିଷ୍ଟ ପ୍ରମାଣୀକରଣ ଉପରେ ନିର୍ଭର କଲେ ପ୍ରକୃତ ବ୍ରାଉଜର ବ୍ୟବହାର କରନ୍ତୁ। ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ସଫଳ HTTP ଫେଚ ଏହି ଏଜେଣ୍ଟ ସେହି ଅନୁରୋଧ କରିପାରିଲା ବୋଲି ସଂକୀର୍ଣ୍ଣ ପ୍ରଶ୍ନର ଉତ୍ତର ଦିଏ।