使用匿名对象和动态类简化接口调用
我们知道,每次发送内容都要先创建一个对应的对象,然后序列化成 JSON 文本,再调用 POST 或 GET 接口来提交。返回来的结果也要进行反序列化,反序列化又要创建对应的 JSON 对象类,这样非常不方便。
这集尝试使用匿名对象和动态类的方式来进行参数的传递。当然有些地方也建议还是创建一个对应的实体类更好,比如 Token 的类,因为它经常用到。
下面以上节课的群发消息为例子,试一下使用动态类和匿名对象的方式。
参数使用匿名对象来序列化
public T DoPost<T>(params string[] param) where T : class
{
var user = new UserGetHandler().DoGet<UserInfo>();
var messageTextSendParamInfo = new {
touser = user.data.openid,
msgtype = "text",
text = new { content = param[0] }
};
var json = JsonHelper.SerializeObject(messageTextSendParamInfo);
url = string.Format(url, accessTokenInfo.access_token);
var content = HtmlHelper.HttpPost(url, json);
return JsonHelper.DeserializeJsonToObject<T>(content);
}Code language: PHP (php)
返回结果用动态类来反序列化
public ActionResult MessageTextSend2(string words)
{
var result = new TextMessageSendHandler().DoPost<dynamic>(words);
return Json(result);
}Code language: PHP (php)
Previous: 06-群发文本短消息的实现
Next: 08-被动回复用户消息