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

时间:2023-02-05 00:09:15 


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,api接口
0
投稿

猜你喜欢

  • Java实现图形界面计算器

    2023-06-05 11:53:23
  • C#中 Json 序列化去掉null值的方法

    2022-02-02 12:13:52
  • Spring Boot如何使用Spring Security进行安全控制

    2022-03-26 03:59:41
  • 在maven中引入本地jar包的步骤

    2023-11-25 10:43:44
  • sin(x)如何求解的java代码实现方法

    2022-04-17 16:22:07
  • java实现操作系统的短进程作业调度示例分享

    2022-05-30 21:02:19
  • Android使用SharedPreferences存储XML文件的实现方法

    2021-07-20 14:24:16
  • Java Jedis NOAUTH Authentication required问题解决方法

    2023-08-19 14:09:47
  • Java栈之链式栈存储结构的实现代码

    2022-01-18 09:38:48
  • C#使用Socket实现发送和接收图片的方法

    2023-11-19 01:43:22
  • C#导出文本内容到word文档的方法

    2021-10-15 19:00:37
  • java处理图片背景颜色的方法

    2023-11-27 04:38:20
  • C#模拟http 发送post或get请求的简单实例

    2023-11-05 13:32:18
  • 零基础入门SpringMVC拦截器的配置与使用

    2023-07-17 21:59:28
  • Eclipse代码格式化设置简单介绍

    2023-10-26 21:59:31
  • 基于C#实现一个简单的FTP操作工具

    2023-05-12 11:50:58
  • java框架之maven是用来做什么的

    2023-04-20 21:59:43
  • 深入解析Java的Spring框架中bean的依赖注入

    2023-12-20 18:50:52
  • spring boot使用thymeleaf为模板的基本步骤介绍

    2023-12-13 15:07:23
  • Java开发人员最常犯的10个错误

    2021-10-25 16:40:08
  • asp之家 软件编程 m.aspxhome.com