예제 #1
0
 private function addExpectHeader(puzzle_message_RequestInterface $request, puzzle_stream_StreamInterface $body)
 {
     // Determine if the Expect header should be used
     if ($request->hasHeader('Expect')) {
         return;
     }
     $expect = $request->getConfig();
     $expect = $expect['expect'];
     // Return if disabled or if you're not using HTTP/1.1
     if ($expect === false || $request->getProtocolVersion() !== '1.1') {
         return;
     }
     // The expect header is unconditionally enabled
     if ($expect === true) {
         $request->setHeader('Expect', '100-Continue');
         return;
     }
     // By default, send the expect header when the payload is > 1mb
     if ($expect === null) {
         $expect = 1048576;
     }
     // Always add if the body cannot be rewound, the size cannot be
     // determined, or the size is greater than the cutoff threshold
     $size = $body->getSize();
     if ($size === null || $size >= (int) $expect || !$body->isSeekable()) {
         $request->setHeader('Expect', '100-Continue');
     }
 }
예제 #2
0
 private function add_json(puzzle_message_RequestInterface $request, $value)
 {
     if (!$request->hasHeader('Content-Type')) {
         $request->setHeader('Content-Type', 'application/json');
     }
     $request->setBody(puzzle_stream_Stream::factory(json_encode($value)));
 }
예제 #3
0
 private function add_decode_content(puzzle_message_RequestInterface $request, puzzle_adapter_curl_RequestMediator $mediator, $value)
 {
     if (!$request->hasHeader('Accept-Encoding')) {
         $this->_closure_handleOptions[CURLOPT_ENCODING] = '';
         // Don't let curl send the header over the wire
         $this->_closure_handleOptions[CURLOPT_HTTPHEADER][] = 'Accept-Encoding:';
     } else {
         $this->_closure_handleOptions[CURLOPT_ENCODING] = $request->getHeader('Accept-Encoding');
     }
 }