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

如何使用OkHttp向wit.ai发送字符串数据?

解决wit.ai /message API的请求问题

wit.ai的/message接口只支持GET请求,你要发送的文本内容需要通过URL的q查询参数传递,而不是放在POST请求体里,这就是你最初POST请求报错的原因。

修正后的完整代码示例

// 初始化OkHttpClient和HttpUrl构建器
OkHttpClient httpClient = new OkHttpClient();
HttpUrl.Builder httpBuilder = HttpUrl.parse("https://api.wit.ai/message").newBuilder();

// 添加必填的版本参数v,以及要发送的文本参数q
httpBuilder.addQueryParameter("v", "20230618");
httpBuilder.addQueryParameter("q", "I'm Pat"); // 这里传入你要发送的字符串

// 构建GET请求
Request httpRequest = new Request.Builder()
    .url(httpBuilder.build())
    .header("Authorization", "Bearer " + CLIENT_ACCESS_TOKEN) // 替换成你的CLIENT_ACCESS_TOKEN
    .get()
    .build();

// 执行请求并处理响应
try {
    Response response = httpClient.newCall(httpRequest).execute();
    final ResponseBody responseBody = response.body();
    
    MainActivity.this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            try {
                if (responseBody != null) {
                    mytxtView.setText(responseBody.string());
                } else {
                    mytxtView.setText("空响应");
                }
            } catch (IOException e) {
                mytxtView.setText("IOException: " + e.getMessage());
            }
        }
    });
} catch (IOException e) {
    e.printStackTrace();
}

关键说明

  • 必须通过q查询参数传递要识别的文本,这是wit.ai /message接口的要求
  • 不需要设置Content-Type或Transfer-Encoding头,GET请求无需请求体
  • 确保v参数使用的是当前有效的API版本(格式为YYYYMMDD)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:02:42