我的问题是我想从Web服务中阅读数据并将其打印在 聊天机器人。
Web服务将具有事件编号及其状态,我必须从WebService和Print中复制数据。我尝试下面的代码,但我不确定如何在对话聊天机器上打印此数据。
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws IOException {
String requestMessage = request.getParameter("message");
String contextString = request.getParameter("context");
JSONObject contextObject = new JSONObject();
if(contextString != null) {enter code here
contextObject = JSONObject.parseObject(contextString);
}
System.out.println("Context: ");
System.out.println(contextObject);
Map<String, Object> contextMap = Utility.toMap(contextObject);
if(requestMessage == null || requestMessage.isEmpty()){
requestMessage = "Greetings";
}
if(requestMessage == "1" || requestMessage == "merge id"){
// throw new NullPointerException();
requestMessage = "call";
try {
URL e = new URL(
"webservice url");
HttpURLConnection conn = (HttpURLConnection) e.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "TEXT/PLAIN");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : " +
conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
System.out.println("Output from Server .... n");
String output;
在应用程序代码中,您必须创建/维护一个名为JSON context
的变量。作为该结构的一部分,您可以用值定义自己的变量。上下文传递给Watson与消息API的对话(直接或通过WATSON SDK(。
在Watson对话的工作区编辑器中,您现在可以访问这些上下文变量。这可能是对话框节点,响应文本中的条件的一部分,也可以是为上下文变量分配新值时。对于您的情况,这可能是一个简单的$ticket_details
。有关详细信息,请参见此表达式参考。
此外,我编写了一个博客条目,该条目更多地解释了有关变量和链接到具有一些扩展示例的github存储库的链接。