java实现小i机器人api接口调用示例
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;
}
}
上一篇:浅谈SpringBoot优化技巧
栏 目:JAVA代码
下一篇:springboot 在ftl页面上使用shiro标签的实例代码
本文标题:java实现小i机器人api接口调用示例
本文地址:http://www.codeinn.net/misctech/98710.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




