为了账号安全,请及时绑定邮箱和手机立即绑定

调用 API 时解析正文时出错

调用 API 时解析正文时出错

PHP
隔江千里 2023-09-08 22:07:59
我正在开发一个 OCR 项目,并且正在使用 vidado API 进行尝试。当我通过 posman 发送 post 请求时,它给了我正确的响应,但是当我从 php 调用 API 时,它给了我以下错误Client error: `POST https://api.vidado.ai/read/text` resulted in a `400 Bad Request` response: {"detail":"There was an error parsing the body"}我的代码是$client = new \GuzzleHttp\Client();                $url   = "https://api.vidado.ai/read/text";                $requestAPI = $client->post( $url, [                    'headers' => [                        'Accept' => 'application/json',                        'Authorization' => 'my apikey',                        'Content-Type' => 'multipart/form-data'                    ],                    'form_params' => [                        'autoscale' => 'true',                        'image'=> $img                    ],                ]);在邮递员中我的请求如下有人注意到实际的错误吗?所以请给我一个方法来做到这一点。谢谢。
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

根据Guzzle 文档

笔记

multipart 不能与 form_params 选项一起使用。您将需要使用其中之一。对 application/x-www-form-urlencoded 请求使用 form_params,对 multipart/form-data 请求使用 multipart。

此选项不能与 body、form_params 或 json 一起使用

因此,您不能将 form_params 与 multipart/form-data 一起使用,并且必须以这种方式使用 multipart 方法:

$client = new \GuzzleHttp\Client();

$url   = "https://api.vidado.ai/read/text";


$requestAPI = $client->request('POST', $url, [

    'headers' => [

        'Accept' => 'application/json',

        'Authorization' => 'my apikey',

        'Content-Type' => 'multipart/form-data'

    ],

    'multipart' => [

        [

            'name'     => 'image',

            'contents' => fopen('/path/to/file', 'r'),

            'filename' => 'custom_filename.jpg'

        ],

        [

            'name' => 'autoscale',

            'contents'=> true

        ]

    ]

]);


查看完整回答
反对 回复 2023-09-08
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号