首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >翻译器文本API \ Microsoft _总是错误401000

翻译器文本API \ Microsoft _总是错误401000
EN

Stack Overflow用户
提问于 2020-05-03 11:05:23
回答 1查看 1.3K关注 0票数 3

我试着测试文本v3.0,但失败了,401访问被拒绝。我使用PHP7.3执行标准cURL请求(HTTP )。

代码语言:javascript
运行
复制
    $key = "************************";  //  secret key here (from the Azure Portal)
    $host = "https://api.cognitive.microsofttranslator.com";
    $path = "/translate?api-version=3.0";

    $params = "&to=en&from=bg";

    $text = "За мен лично хора, които задават такива въпроси са несъобразителни.";

    $requestBody = array(
        array(
            'Text' => $text,
        ),
    );

    $content = json_encode($requestBody);

    if (!function_exists('com_create_guid')) {
        function com_create_guid()
        {
            return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
                mt_rand(0, 0xffff), mt_rand(0, 0xffff),
                mt_rand(0, 0xffff),
                mt_rand(0, 0x0fff) | 0x4000,
                mt_rand(0, 0x3fff) | 0x8000,
                mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
            );
        }
    }

    $curl_headers = array(
        'Content-type: application/json',
        'Content-length: ' . strlen($content),
        'Ocp-Apim-Subscription-Key: ' . $key,
        'X-ClientTraceId: ' . com_create_guid()
    );

    $url = $host . $path . $params;

    $ch = curl_init();
    $curl_content = array('content', $content);

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $curl_headers);
    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

    curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
    // Receive server response ...
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);


    $result = curl_exec($ch);

    //dd(curl_getinfo($ch, CURLINFO_HEADER_OUT));

    if (curl_exec($ch) === false) {
        dd(curl_error($ch));
    }

Laravel5.6,代码放置在api.php路由文件中。

响应代码:"{"error":{"code":401000,"message":"The request is not authorized because credentials are missing or invalid."}}"

哪里出错了?我应该启用开发人员门户上的任何设置吗?

EN

回答 1

Stack Overflow用户

发布于 2020-06-08 19:07:57

也许这个能帮上忙。在正式的文档中,您可以找到两个CURL请求的例子。两者的区别在于,第二个区域也有参数区域。在我的情况下,只有第二个请求起作用。也许区域参数是必要的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61573396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档