最近做一个微信公众号的自动问答功能,根据微信配置利用“接口a”获取客户的消息做出来了,给客户返回应答消息时有点迷糊了,我还觉得非得再写一个“接口b”来跟客户再进行一次链接,然后回复的消息才能到达客户... ...
后来发现自己陷入一个思维误区,我比较熟悉的是前后端的交互,前端写个ajax给后台接口,后台给ajax返回消息时你给重新写接口了吗?没有,只用了@ResponseBody+return返回消息,那么现在给微信返回消息,你干嘛非得再写新接口?还有前端小霍收到数据后怎么展示怎么用,你管了吗?那么你管人家微信服务器收到回复后能不能展示给客户干嘛?
这就得说说通信中的“三次握手协议”了,tcp/ip是三次握手,安全链接;而UDP是一次握手,不安全链接;而Java的http链接一般都是tcp/ip协议,是三次握手,天然的就自带回复通道并搭建好了。而我概念中感觉http是UDP协议一次握手不自带回复通道的印象,感觉还得写个接口再实现一次UDP握个手来搭建回复通道,误区就在此。
------------------------------------------------------------------------------------------------------------------------
Java向请求返回应答数据的方式:
2.1 用HttpURLConnection+outputStream来发送;
2.2 用response返回 (还有@ResponseBody,直接return就行)
2.3 用client+doPost