wit.ai – 如何用Java发送请求?

我正在使用Java中的wit.ai开发一个虚拟助手,但是我仍然无法发出HTTP请求。 我不是Java中的HTTP请求的专家,我一直得到400错误。

这是我的代码:

public class CommandHandler { public static String getCommand(String command) throws Exception { String url = "https://api.wit.ai/message"; String key = "TOKEN HERE"; String param1 = "20141022"; String param2 = command; String charset = "UTF-8"; String query = String.format("v=%s&q=%s", URLEncoder.encode(param1, charset), URLEncoder.encode(param2, charset)); URLConnection connection = new URL(url + "?" + query).openConnection(); connection.setRequestProperty ("Authorization Bearer", key); connection.setRequestProperty("Accept-Charset", charset); InputStream response = connection.getInputStream(); return response.toString(); } 

}

这是wit.ai给出的示例:

 $ curl \ -H 'Authorization: Bearer $TOKEN' \ 'https://api.wit.ai/message?v=20141022&q=hello' 

我希望有人可以帮助我

下面是快速检查您的restapi的简单代码

 try { URL url = new URL("https://api.wit.ai/message?v=20170218&q=Hello"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setRequestProperty("Accept", "application/json"); conn.setRequestProperty("Authorization", "Bearer addkeyhere"); if (conn.getResponseCode() != 200) { throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode()); } BufferedReader br = new BufferedReader(new InputStreamReader( (conn.getInputStream()))); String output; System.out.println("Output from Server .... \n"); while ((output = br.readLine()) != null) { System.out.println(output); } conn.disconnect(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 

这对我很有用!

 connection.setRequestProperty ("Authorization": "Bearer "+key);