由于 android 的 Wit.AI API 已被弃用,我正在尝试使用它的 http api 从我的 wit.ai 应用程序中获取 json 格式的结果。我不知道这是否可能,但我正在尝试以这种方式从我的 Android 应用程序发送 http 请求:
public class MainActivity extends AppCompatActivity {
String addressM = "https://api.wit.ai/message?v=20160526";
String accessToken = "BODF5LOCAIPJZI37KTWQKELNUR26ZMDH";
String header = "Authorization: Bearer ";
String query = "q";
String message = "partita";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CallAPI runner = new CallAPI();
runner.execute(addressM);
}
public class CallAPI extends AsyncTask<String, String, String> {
public CallAPI() {
//set context variables if required
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
System.out.println("Running........................");
String urlString = params[0]; // URL to call
String resultToDisplay = "";
InputStream in = null;
try {
URL url = new URL(urlString);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestProperty(header, accessToken);
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty(query, message);
in = new BufferedInputStream(urlConnection.getInputStream());
} catch (Exception e) {
System.out.println(e.getMessage());
return e.getMessage();
}
try {
resultToDisplay = IOUtils.toString(in, "UTF-8");
//to [convert][1] byte stream to a string
} catch (IOException e) {
e.printStackTrace();
}
return resultToDisplay;
}
@Override
protected void onPostExecute(String result) {
//Update the UI
}
}
我正在关注 this doc我正在尝试发送一个简单的“消息请求”。所以,我必须在我的 url 中放置一个包含我的身份验证 token 的 header ,然后将我的请求放入其中。发送我的请求时,我应该在我的 wit.ai 应用程序中取回一个 json 和一条收件箱消息,但我什么也没收到(目前我并不真正关心 json,只是为了收件箱消息到确保我的请求已发送)。我从另一个堆栈溢出问题中复制了上面的代码。 我使用互联网权限正确设置了我的 list 。 有人可以帮助我吗?
最佳答案
将第 4,5 行更改为:
String accessToken = "Bearer BODF5LOCAIPJZI37KTWQKELNUR26ZMDH";
String header = "Authorization";
它应该可以工作。
关于android - 如何向 wit.ai 发送 Http post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37750101/