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

如何在Java中调用RapidAPI的LanguageTool API校验自定义字符串

问题原因

你直接传入自定义字符串无法运行,是因为该接口要求POST请求的 body 为application/x-www-form-urlencoded格式的参数,不能直接把待校验文本传给.method()方法,需要按照接口参数要求构造合法的请求体。

修改步骤

  1. 对自定义的待校验字符串做URL编码,避免空格、特殊符号导致参数解析错误,使用Java自带的java.net.URLEncoder工具类即可完成编码。
  2. 将编码后的字符串拼接到text=参数后,和language参数拼接为完整的请求体,再传入HttpRequest.BodyPublishers.ofString()中。

修改后的完整代码示例

import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;

public class LanguageToolTest {
    public static void main(String[] args) throws Exception {
        // 你的自定义待校验字符串
        String myString = "Hello World. Hello World. Hello World.";
        // 对文本做URL编码
        String encodedText = URLEncoder.encode(myString, StandardCharsets.UTF_8);
        // 构造完整的请求体
        String requestBody = "text=" + encodedText + "&language=en-US";

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://dnaber-languagetool.p.rapidapi.com/v2/check"))
                .header("content-type", "application/x-www-form-urlencoded")
                .header("x-rapidapi-host", "dnaber-languagetool.p.rapidapi.com")
                .header("x-rapidapi-key", "[替换为你自己的rapidapi-key]")
                .method("POST", HttpRequest.BodyPublishers.ofString(requestBody))
                .build();
        HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}

补充说明

原示例代码里的text=This%20is%20a%20error.&language=en-US中,%20就是空格经过URL编码后的结果,如果你直接拼接原始字符串,请求会因为参数格式非法被接口拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:45:02