错误信息如下:
{"url":"/user/getToken.json","code":1002,"errorMessage":"invalid App-Key."}
先看官网文档 融云sdk服务端-用户注册文档:https://docs.rongcloud.cn/v3/views/im/noui/guide/private/user/register/serverapi.html
我第一反应以为是app-key不对,然后仔细核对了app-key,发现并没有问题,而官网文档没有提供1002错误码的更多说明,所以emmm~~~百度走起。
之前有人说是因为https和http的原因 我从https换成http发现还是有问题(其实觉得应该和https没啥关系,但是没有找到原因 死马当活马医了给),也有其他博客说可能是url没有编码导致的,然后参数中的头像也进行了编码,测试发现还是上诉错误。
然后仔细研究了一些官方提供的接口文档,发现自己写错了!!!!注意看官方给的请求格式:
POST /user/getToken.json HTTP/1.1
Host: api-cn.ronghub.com
App-Key: uwd1c0sxdlx2
Nonce: 14314
Timestamp: 1408710653491
Signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8
Content-Type: application/x-www-form-urlencoded
userId=jlk456j5&name=Ironman&portraitUri=http%3A%2F%2Fabc.com%2Fmyportrait.jpg
key ,时间戳,签名,随机数这些是header,用户id,昵称,头像才是参数 而我之前都作为参数进行请求了,所以会出现1002错误。
附最新代码:
package com.net.api;
import java.util.List;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.net.entity.Users;
import com.net.mapper.UsersMapper;
import com.net.utils.HttpUtil;
import com.net.utils.RETINFO;
import com.net.utils.RandomUtil;
import com.net.utils.StringUtil;
/**
* 用户相关业务
* @author zhangq
*
*/
@RestController
@RequestMapping("/api/users")
public class UsersController {
//定义在配置文件中的属性名
@Value("${ro