如何正确使用deep-pro翻译服务?

How to use deep-pro translate Service properly?

我经常使用 deepl-translation API,我在这里创建了一个 class 名为“DeeplRequests:其中包含:

    private static readonly RestClient Client = new RestClient("https://www2.deepl.com/jsonrpc");
    private static readonly RestRequest postRequest = new RestRequest(Method.POST);
                  
    private static DeeplAnswer CreateRequest(string text, string sourceLanguage, string targetLanguage)
    {            
        postRequest.Parameters.Clear();
        postRequest.AddParameter("auth_key", "<KEY_FROM_ACCOUNT_PAGE");
        postRequest.AddParameter("application/json; charset=utf-8", "{}", ParameterType.RequestBody);
        postRequest.AddParameter("text", text);
        postRequest.AddParameter("source_lang", sourceLanguage);
        postRequest.AddParameter("target_lang", targetLanguage);
        postRequest.RequestFormat = DataFormat.Json;
        var result = Client.Execute(postRequest);
        var rawResult = result.Content;
        var answer = JsonConvert.DeserializeObject<DeeplAnswer>(rawResult);
        return answer;

      //DeeplAnswer is a class which has only 3 fields to contain proper JSON responses not big of a deal
    }

而且我总是收到 429: TooManyRequests 或者当我尝试这个客户端时-url: private static readonly RestClient Client = new RestClient("https://api-free.deepl.com/v2/translate");还添加了适当的 AUTH_KEY 作为参数,我总是得到“403:禁止”代码??

有没有人知道如何正确地做到这一点(注意:我正在使用 RestSharp!)#

获得这项工作对我来说意义重大,因为我想将它用于我们工作中的一些更高级别的文档翻译。

谢谢!

在 postman 中,我能够 post 使用表单数据内容类型。同样在 PostMan 应用程序中,您可以使用 RestSharp 生成 C# 代码。这是它生成的内容,我正在我的 Web 应用程序中使用它。

         var client = new RestClient("https://api.deepl.com/v2/translate");
        client.Timeout = -1;
        var request = new RestRequest(Method.POST);
        request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
        request.AddParameter("auth_key", "<your_auth_key>");
        request.AddParameter("source_lang", "EN");
        request.AddParameter("target_lang", "ES");
        request.AddParameter("text", "Hello");
        IRestResponse response = client.Execute(request);

        string strJsonResponse = response.Content;

@JeffBlumenthal - 我想通了,兄弟。步骤如下:1) 确保你只订阅了一个 deepl-APi-pro 帐户或 API-free 版本 2) 还要确保你有正确的计划API 要使用,请考虑 deepl-support 提供的这段文字:“请注意: 如果您计划预订 DeepL Pro Starter 订阅,则不包括对 API 请求的访问权限。 此外,预订 DeepL API 或 API 免费时,不包括对 DeepL 翻译工具的访问。 这两个是不同的产品,您需要为每个产品分别创建一个额外帐户才能预订服务。”3) 还要确保拥有正确的 ,即:“https://api -free.deepl.com/v2/translate" 用于 FREE-api 用户,https://api.deepl.com/v2/translate 用于 PRO 用户。4) 还要确保将 auth_key 设置为 AddParameter(。 ..) 不像 AddHeader(...) 例如: postRequest.AddParameter("auth_key", "1924ea90-12ff-XXXXXXXXXXX"); 所有这些都认为它对我有用,希望你明白这个也完成了:)=

干杯!