如何将PDF文件从PHP Curl请求返回到Adobe API

如何将PDF文件从PHP Curl请求返回到Adobe API,php,curl,php-curl,Php,Curl,Php Curl,几天来我一直在努力解决这个问题,最后我破解了,想问一下堆栈溢出问题 我最近加入了AdobeAPI,以利用他们允许编辑PDF的API。我收到一条成功消息,说明POST API和GET API已通过,问题是我无法看到应该从GET请求返回的PDF。它不会显示在网页上,也不会保存到指定的web文件夹。在POSTMAN中,它在GET请求后显示八位字节流,但当我在网页上使用相同的请求时,它不显示八位字节流 有人能告诉我哪里出了问题,以及如何解决这个问题,以便在当前页面上显示已编辑的pdf,或者至少将其保存在

几天来我一直在努力解决这个问题,最后我破解了,想问一下堆栈溢出问题

我最近加入了AdobeAPI,以利用他们允许编辑PDF的API。我收到一条成功消息,说明POST API和GET API已通过,问题是我无法看到应该从GET请求返回的PDF。它不会显示在网页上,也不会保存到指定的web文件夹。在POSTMAN中,它在GET请求后显示八位字节流,但当我在网页上使用相同的请求时,它不显示八位字节流

有人能告诉我哪里出了问题,以及如何解决这个问题,以便在当前页面上显示已编辑的pdf,或者至少将其保存在指定目录中

谢谢,

$headers = [];
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://cpf-ue1.adobe.io/ops/:create?',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_SSL_VERIFYPEER => false,
  CURLOPT_HEADERFUNCTION => function($ch, $header) use (&$headers)
  {
    $len = strlen($header);
    $header = explode(':', $header, 2);
    if (count($header) < 2) // ignore invalid headers
      return $len;

    $headers[strtolower(trim($header[0]))][] = trim($header[1]);

    return $len;
  },
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('contentAnalyzerRequests' => '{
   "cpf:engine":{
      "repo:assetId":"urn:aaid:cpf:Service-52d5db6097ed436ebb96f13a4c7bf8fb"
   },
   "cpf:inputs":{
      "documentIn":{
         "dc:format":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
         "cpf:location":"InputFile0"
      },
      "params": {
      "cpf:inline": {
        "outputFormat": "pdf",
        "jsonDataForMerge": {
          "fname": "Hugh",
          "lname": "Jass",
          "dob": "06/25/1993"
        }
      }
    }
   },
   "cpf:outputs":{
      "documentOut":{
         "dc:format":"application/pdf",
         "cpf:location":"response.pdf"
      }
   }
}','InputFile0'=> new CURLFILE('WordDocument that is to be edited')),
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {Bearer Token}',
    'Accept: application/json, text/plain, */*',
    'x-api-key: {API Key}',
    'Prefer: respond-async,wait=0'
  ),
));

$response = curl_exec($curl);


$url = ($headers['x-request-id'][0]);
$curlurl = 'https://cpf-ue1.adobe.io/ops/id/'.$url.'';
curl_close($curl);
$curl1 = curl_init();

curl_setopt_array($curl1, array(
  CURLOPT_URL => $curlurl,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_SSL_VERIFYPEER => false,
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {Bearer Token}',
    'x-api-key: {X-API-KEY}'
  ),
));

$response1 = curl_exec($curl1);
echo $response1;
curl_close($curl1);
$headers=[];
curl_setopt_数组($curl,数组(
CURLOPT_URL=>'https://cpf-ue1.adobe.io/ops/:create?',
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_编码=>'',
CURLOPT_MAXREDIRS=>10,
CULLOPT_超时=>0,
CURLOPT_FOLLOWLOCATION=>true,
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_HEADERFUNCTION=>函数($ch,$header)使用(&$headers)
{
$len=strlen($header);
$header=分解(“:”,$header,2);
if(count($header)<2)//忽略无效的头
返回$len;
$headers[strtolower(trim($header[0])][]=trim($header[1]);
返回$len;
},
CURLOPT_HTTP_VERSION=>CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST=>“POST”,
CURLOPT_POSTFIELDS=>array('contentAnalyzerRequests'=>'{
“cpf:发动机”:{
“回购:资产负债表”:“urn:aaid:cpf:Service-52d5db6097ed436ebb96f13a4c7bf8fb”
},
“中央公积金:投入”:{
“documentIn”:{
“dc:format”:“application/vnd.openxmlformats of icedocument.wordprocessingml.document”,
“cpf:位置”:“InputFile0”
},
“参数”:{
“cpf:内联”:{
“outputFormat”:“pdf”,
“jsonDataForMerge”:{
“fname”:“Hugh”,
“lname”:“Jass”,
“dob”:“06/25/1993”
}
}
}
},
“伙伴关系:产出”:{
“文档输出”:{
“dc:格式”:“应用程序/pdf”,
“cpf:位置”:“response.pdf”
}
}
}“,”InputFile0'=>新卷发文件('待编辑的WordDocument'),
CURLOPT_HTTPHEADER=>数组(
'授权:承载{承载令牌}',
'接受:application/json,text/plain,*/*',
'x-api-key:{api key}',
'首选:异步响应,等待=0'
),
));
$response=curl\u exec($curl);
$url=($headers['x-request-id'][0]);
$curlurl=https://cpf-ue1.adobe.io/ops/id/“.$url”。”;
curl_close($curl);
$curl1=curl_init();
curl_setopt_数组($curl1,数组)(
CURLOPT_URL=>$curlurl,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_编码=>'',
CURLOPT_MAXREDIRS=>10,
CULLOPT_超时=>0,
CURLOPT_FOLLOWLOCATION=>true,
CURLOPT_HTTP_VERSION=>CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST=>“GET”,
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_HTTPHEADER=>数组(
'授权:承载{承载令牌}',
'x-api-key:{x-api-key}'
),
));
$response1=curl\u exec($curl1);
echo$response1;
curl_close($curl1);

下面是我在网页上收到的CURL get请求的响应。。。{“cpf:status”:{“completed”:false,“type”:“,”title:“In Progress”,“status”:202},“cpf:engine”:{“repo:assetId”:“urn:aaid:cpf:Service-52d5db6097ed436ebb96f13a4c7bf8fb”},“cpf:inputs:{“documentIn:”{“dc:format:“application/vnd.openxmlformats-officedocument.wordprocessingml.document”,“cpf:location:”InputFile0“},“params:{”cpf:inputfile:inline:{“outputFormat:”“pdf”、“jsonDataForMerge”:{“fname”:“Hugh”、“lname”:“Jass”、“dob”:“06/25/1993”}}}}与邮递员一起,除了pdf的八位字节流之外,我还得到了这些信息。我注意到的最后一件事是邮递员get响应的状态代码是“已完成”“获取响应的网页状态代码为202‘进行中’。确定…”。。。我刚刚解决了其中一个问题。我需要稍微推迟GET请求。这就是为什么我得到的状态码是202而不是200,并且没有看到八位字节流。现在我需要做的就是找出如何将文档保存到正确的文件夹中,并查看非二进制(octect-stream)格式的pdf。