You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GO SDK调用Google Translation API返回HTML而非JSON响应问题求解

问题原因

你遇到的返回HTML格式错误的情况,既不是配置遗漏也不是Go SDK的问题,是Google Cloud API网关的拦截逻辑导致的:当请求的错误属于基础格式类错误(还没进入翻译服务的业务逻辑层)时,网关会直接返回HTML格式的通用错误页,没有返回SDK可自动解析的结构化JSON错误,因此SDK只能将完整响应体拼接进错误信息中,无法直接输出纯文本错误。

排查触发400的常见原因

你可以先逐一核对以下配置项,先从根源解决报错问题:

  • 核对使用的API密钥是否正确,无多余空格、未过期、未被禁用
  • 确认传入的源语言、目标语言编码符合ISO 639-1规范
  • 检查待翻译的文本数组,单条文本长度未超出Google翻译API的5000字符限制,无异常特殊字符
  • 确认你使用的Google Cloud项目已经启用了Cloud Translation API服务

提取纯文本错误的实现方法

如果需要不管错误类型都提取纯文本提示,可以通过类型断言+HTML解析的方式处理,示例代码如下:

import (
    "google.golang.org/api/googleapi"
    "golang.org/x/net/html"
    "strings"
)

// 解析Google API错误返回纯文本
func parseGoogleAPIError(err error) string {
    // 先断言是不是googleapi的错误类型
    gerr, ok := err.(*googleapi.Error)
    if !ok {
        return err.Error()
    }
    // 尝试解析HTML内容提取错误文本
    doc, err := html.Parse(strings.NewReader(gerr.Body))
    if err != nil {
        // 解析失败直接返回原始错误信息
        return gerr.Error()
    }
    // 遍历HTML节点找p标签里的错误内容
    var extract func(*html.Node) string
    extract = func(n *html.Node) string {
        if n.Type == html.ElementNode && n.Data == "p" {
            // 匹配到p标签,提取文本,排除冗余内容
            var text string
            for c := n.FirstChild; c != nil; c = c.NextSibling {
                if c.Type == html.TextNode {
                    text += c.Data
                }
            }
            text = strings.TrimSpace(text)
            if strings.HasPrefix(text, "Your client has issued") {
                return text
            }
        }
        for c := n.FirstChild; c != nil; c = c.NextSibling {
            if res := extract(c); res != "" {
                return res
            }
        }
        return ""
    }
    res := extract(doc)
    if res != "" {
        return res
    }
    return gerr.Error()
}

你在调用翻译方法拿到错误后,直接调用parseGoogleAPIError(err)就能拿到需要的纯文本错误内容。


内容的提问来源于stack exchange,提问作者Amandeep kaur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:09:03