小编cyb*_*077的帖子

gRPC 给定 PHP 的错误元数据

目前我要重写一个简单的代码,从 Python 到 PHP。此代码用于使用 ProtoBuf 和 gRPC 向 Yandex Cloud (Speech Kit) 发出请求。

在 Python (v3) 上一切正常。

然后,我想在 PHP(MacOS 上的 7.1.23)中使用相同的方法。我曾经protoc编译 Protobuf 和 grpc php 插件来获取服务客户端。

我面临的第一个复杂问题是客户端的方法接口SttServiceClient->StreamingRecognize(array metadata[], array options=[])有点令人困惑,因为我认为它应该接受StreamingRecognitionRequest.

第二个是我收到异常 InvalidArgumentException: Bad metadata value given:

PHP Fatal error:  Uncaught InvalidArgumentException: Bad metadata value given in /Users/cyberpug/Documents/repos/php/yaskit/vendor/grpc/grpc/src/lib/BidiStreamingCall.php:37
Stack trace:
#0 /Users/cyberpug/Documents/repos/php/yaskit/vendor/grpc/grpc/src/lib/BidiStreamingCall.php(37): Grpc\Call->startBatch(Array)
#1 /Users/cyberpug/Documents/repos/php/yaskit/vendor/grpc/grpc/src/lib/BaseStub.php(384): Grpc\BidiStreamingCall->start(Array)
#2 /Users/cyberpug/Documents/repos/php/yaskit/vendor/grpc/grpc/src/lib/BaseStub.php(595): Grpc\BaseStub->Grpc\{closure}('/yandex.cloud.a...', Array, Array, Array)
#3 /Users/cyberpug/Documents/repos/php/yaskit/STT/proto/Yandex/Cloud/Ai/Stt/V2/SttServiceClient.php(26): Grpc\BaseStub->_bidiRequest('/yandex.cloud.a...', Array, Array, Array)
#4 /Users/cyberpug/Documents/repos/php/yaskit/test.php(83): Yandex\Cloud\Ai\Stt\V2\SttServiceClient->StreamingRecognize(Array, Array)
#5 {main}
  thrown …
Run Code Online (Sandbox Code Playgroud)

php protocol-buffers yandex grpc

1
推荐指数
1
解决办法
1277
查看次数

标签 统计

grpc ×1

php ×1

protocol-buffers ×1

yandex ×1