PHP CURL调用百度ORC接口返回值问题

 

公司的项目因为要用到百度的OCR接口,而恰巧遇到了一些小坑,所以打算写出来。

一个是小问题 但是让我郁闷了很久

因为拍的照片不一定都是正着拍的所以我打算将['detect_direction'=>true]这个参数传过去的。

之前因为用了postman测试了一下百度的这个接口,一开始我是这么传的(图上这个image也是有问题的,开始我用的url所以没问题):

这里测试是完完全全没有问题的然后当我用PHP CURL写出来时问题来了

<?php

        $url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic';

        $headers = [
            'Content-Type:multipart/form-data'
        ];

        $post_data = [
            'image' => (string) $bimg,
            'access_token' => $this->accessToken,
            'detect_direction' => true
        ];

        $curl = curl_init();

        curl_setopt($curl,CURLOPT_URL,$url);
        curl_setopt($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_NOBODY, true);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
        curl_setopt($curl, CURLOPT_POST,true); //设置POST请求
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
        curl_setopt($curl, CURLOPT_TIMEOUT,(int)40);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); //添加httpheader
        if(!$output = curl_exec($curl)) die('curl not result');
        curl_close($curl);
        echo $output;    

是确确实实有参数返回了,但是和postman测试的完全不同了,识别的乱七八糟的。。。。然后苦思冥想之后发现文档中把post的参数中的

'detect_direction' => true 改成了'detect_direction' => 'true'

然后好了!!??TMD文档上写的bool呢?

 

我去真的很郁闷。。

然后紧接着又出现了一个问题,因为我写代码时是在本机跑的这个项目 所以传url这个方式真的很麻烦就想把图片转成base64,也就是第一张图的image那个参数结果总是提示我格式不对。。。。。

后来发现百度所需要的base64真的就只需要
base64_encode($imageUrl);
这样一下 然后传过去就好了。。。。

不知道是不是自己想的太多了之前还拼了data:图片类型啥的。。。

 

转载于:https://www.cnblogs.com/woaidayuan/p/7282462.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值