I'm using PHP (5.3.26) to process a webhook, which requires an "Accepted" response. So, this at the end of the file:
header ("HTTP/1.0 202");
echo ("Hello API Event Received");
So far so good. But the webhook is sending a link to a PDF file which I need to GET and save. I've always used this method for extracting pdfs (or other files):
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER,false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$filename = "something";
header('Cache-Control: public');
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="' . $filename . '"');
header('Content-Length: '.strlen($response));
echo $response;
So, the problem that I can't get my head around is how to sequence these actions due to the multiple headers. I've broken the pdf-processing code out into another file, but I can't call that file in a sub-routine, and I can't redirect to it because the redirect requires another header. Obviously I could drop it in a queue to be processed by a cron job, but that seems a little hokey.
Any insights?