如何解决如何在 PHP 中使用 cURL POST 二进制数据?
使用 Microsoft Azure OCR 我只能在回复中得到文字。在我的情况下这是一个问题,因为我需要获取数值(部分代码)。 Read API 文档真的很糟糕,我无法弄清楚如何在 PHP 中使用 cURL 发送我的二进制数据文件。
在 OCR (https://westeurope.dev.cognitive.microsoft.com/docs/services/computer-vision-v3-1-ga/operations/56f91f2e778daf14a499f20d/console) 中,这将是请求:
POST https://westeurope.api.cognitive.microsoft.com/vision/v3.1/ocr?language=unk&detectOrientation=true HTTP/1.1
Host: westeurope.api.cognitive.microsoft.com
Content-Type: multipart/form-data
[Binary image data]
在 PHP 中,我的代码如下所示:
$mime = mime_content_type($files['tmp_name']);
$postfields = array('image' => new CURLFile($files['tmp_name'],$mime,$files['name']));
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$ocr_url);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postfields);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
'Content-Type: multipart/form-data','Ocp-Apim-Subscription-Key: '.$ocr_key
));
$result = curl_exec($ch);
curl_close($ch);
这适用于 OCR,但是当我想使用读取 API 时,multipart/form-data 不是内容类型的选项。在 Read API 中更改内容类型(当然还有 URL)无济于事。我已经尝试了几种方法。 阅读 API 文档:https://westeurope.dev.cognitive.microsoft.com/docs/services/computer-vision-v3-1-ga/operations/5d986960601faab4bf452005
有人可以帮我吗?
解决方法
这是用于读取 API 的 PHP 代码的 link,支持的正文输入方法:原始图像二进制或图像 URL。
<?php
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
require_once 'HTTP/Request2.php';
$request = new Http_Request2('https://westeurope.api.cognitive.microsoft.com/vision/v3.1/read/analyze');
$url = $request->getUrl();
$headers = array(
// Request headers
'Content-Type' => 'application/json','Ocp-Apim-Subscription-Key' => '{subscription key}',);
$request->setHeader($headers);
$parameters = array(
// Request parameters
'language' => '{string}',);
$url->setQueryVariables($parameters);
$request->setMethod(HTTP_Request2::METHOD_POST);
// Request body
$request->setBody("{body}");
try
{
$response = $request->send();
echo $response->getBody();
}
catch (HttpException $ex)
{
echo $ex;
}
?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。