java实现小i机器人api接口调用示例

所属分类: 软件编程 / java 阅读数: 40
收藏 0 赞 0 分享

复制代码 代码如下:

package com.weixin.util;

import java.io.IOException;
import java.util.Random;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.lang.StringUtils;

public class XiaoI {
 private final static String APP_KEY = "*****";
 private final static String APP_SECRET = "****";

 public String Tess(String key, String names) {
  String realm = "xiaoi.com";
  String method = "POST";
  String uri = "/robot/ask.do";
  byte[] b = new byte[20];
  new Random().nextBytes(b);
  String nonce = new String(Hex.encodeHex(b));
  String HA1 = DigestUtils.shaHex(StringUtils.join(new String[] {
    APP_KEY, realm, APP_SECRET }, ":"));
  String HA2 = DigestUtils.shaHex(StringUtils.join(new String[] { method,
    uri }, ":"));
  String sign = DigestUtils.shaHex(StringUtils.join(new String[] { HA1,
    nonce, HA2 }, ":"));

  String str = null;

  HttpClient hc = new HttpClient();
  PostMethod pm = new PostMethod("http://nlp.xiaoi.com/robot/ask.do");
  pm.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,
    "utf-8");
  pm.addRequestHeader("X-Auth", "app_key=\"7HHk65oE2Ngy\", nonce=\""
    + nonce + "\", signature=\"" + sign + "\"");
  pm.setParameter("platform", "weixin");
  pm.setParameter("type", "0");
  pm.setParameter("userId", names);
  pm.setParameter("question", key);
  int re_code;
  try {
   re_code = hc.executeMethod(pm);
   if (re_code == 200) {
    str = pm.getResponseBodyAsString();
   }
  } catch (HttpException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return str;
 }
}

更多精彩内容其他人还在看

java 中maven pom.xml文件教程详解

这篇文章主要介绍了java 中maven pom.xml文件教程详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

spring boot整合netty的实现方法

这篇文章主要介绍了spring boot整合netty的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Netty与Spring Boot的整合实现

这篇文章主要介绍了Netty与Spring Boot的整合的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Spring动态加载bean后调用实现方法解析

这篇文章主要介绍了Spring动态加载bean后调用实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现画图板上画一条直线

这篇文章主要为大家详细介绍了java实现画图板上画一条直线,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java通过python命令执行DataX任务的实例

今天小编就为大家分享一篇Java通过python命令执行DataX任务的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

springBoot集成redis的key,value序列化的相关问题

这篇文章主要介绍了springBoot集成redis的key,value序列化的相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

java实现登录案例

这篇文章主要为大家详细介绍了java实现登录案例的相关代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java解决请求跨域的两种方法

这篇文章主要为大家详细介绍了java解决请求跨域的两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

SpringBoot集成Beetl后统一处理页面异常的方法

这篇文章主要介绍了SpringBoot集成Beetl后统一处理页面异常的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享
查看更多