Guzzle ବଡି ଷ୍ଟ୍ରିମ କାହିଁକି ଏବେ ବି ବଫର ହୋଇପାରେ
ବଡି ଇଣ୍ଟରଫେସ, ଟ୍ରାନ୍ସପୋର୍ଟ ଡେଲିଭରି ଏବଂ ଆପଣଙ୍କ ନିଜ ପାର୍ସର ସ୍ୱାଧୀନ ଭାବରେ ବଫର କରିପାରେ। stream ସ୍ପଷ୍ଟ ଭାବରେ ବ୍ୟବହାର କରନ୍ତୁ ଏବଂ ବ୍ୟବହାର କ୍ରମିକ ରଖନ୍ତୁ।
getBody() ସ୍ଟ୍ରିମ ଇଣ୍ଟରଫେସ ଫେରାଏ ଯଦିଓ Guzzle ପ୍ରତିକ୍ରିୟା ପୂର୍ବରୁ ଡାଉନଲୋଡ କରିସାରିଛି। ଫରୱାର୍ଡ ପ୍ରକ୍ସି ମାଧ୍ୟମରେ କ୍ରମିକ ନେଟୱାର୍କ ଡେଲିଭରି ଅନୁରୋଧ କରିବାକୁ, ଅନୁରୋଧରେ stream ସେଟ କରନ୍ତୁ:
$response = $client->request('GET', 'https://example.com/stream', [
'proxy' => 'http://proxy.example:8080',
'stream' => true,
'read_timeout' => 10,
]);
$body = $response->getBody();
ଏହା ଏକ ବିଦ୍ୟମାନ କ୍ଲାଏଣ୍ଟ ବ୍ୟବହାର କରେ; ସାର୍ବଜନୀନ HTTP ଏଣ୍ଡପଏଣ୍ଟ ପାଇଁ HTTP ପ୍ରକ୍ସି ତାଲିକାରୁ ଠିକଣା ବାଛନ୍ତୁ ଏବଂ ଉଦାହରଣର ପ୍ରକ୍ସି URL ବଦଳାନ୍ତୁ। ସ୍ଟ୍ରିମିଂ ସମର୍ଥନ ଏହାର ହ୍ୟାଣ୍ଡଲର ଉପରେ ନିର୍ଭର କରେ; କେବଳ ସ୍ଟ୍ରିମ ଇଣ୍ଟରଫେସ ଆପଣଙ୍କୁ କହିପାରିବ ନାହିଁ ଯେ ହ୍ୟାଣ୍ଡଲର ବଡିକୁ କ୍ରମିକ ଭାବରେ ପହଞ୍ଚାଇଛି କି ନାହିଁ।
ପ୍ରତିକ୍ରିୟା ଆସିବା ପରେ, ସୀମିତ ଅଂଶ ପଢ଼ିବା ଜାରି ରଖନ୍ତୁ। $body କୁ ଷ୍ଟ୍ରିଙ୍ଗରେ ରୂପାନ୍ତର କଲେ ସମଗ୍ର ବଡି ପୁଣି ସଂଗ୍ରହ ହୁଏ। ନେଟୱାର୍କ ବାଇଟ ଆସିଥିଲେ ମଧ୍ୟ ନୂଆ ଧାଡ଼ି ଅପେକ୍ଷାରେ ଲାଇନ ପାର୍ସର ଅଟକି ରହିଥିବା ପରି ଦେଖାଯାଇପାରେ। ଏହା ବ୍ୟବହାରର ବିଳମ୍ବ, ତେଣୁ ପ୍ରକ୍ସି ବଦଳାଇଲେ ଏହା ଦୂର ହେବ ନାହିଁ।
read_timeout ସମର୍ଥିତ ସ୍ଟ୍ରିମ କାର୍ଯ୍ୟକାରୀକରଣ ଅଧୀନରେ ବ୍ୟକ୍ତିଗତ ପଢ଼ିବା ଅପେକ୍ଷାକୁ ସୀମିତ କରେ। ଏହା ଏକ ଅନନ୍ତ ଫିଡକୁ ଦଶ ସେକେଣ୍ଡର ସମୁଦାୟ ଆୟୁ ଦିଏ ନାହିଁ। ଟାଇମଆଉଟ, EOF ଏବଂ ତ୍ରୁଟିଗୁଡ଼ିକୁ ଅଲଗା ଭାବରେ ପରିଚାଳନା କରନ୍ତୁ, ଏବଂ ପ୍ରକ୍ରିୟା ଶେଷ ହେଲେ କିମ୍ବା ବାତିଲ ହେଲେ ବଡି ବନ୍ଦ କରନ୍ତୁ।