游戏开发中,需要对接平台SDK
验证流程大概是:
- 客户端登录平台,获取authorize_code,并发送给服务端
- 服务端向平台验证authorize_code,同时获得user_id
- 服务端验证通过后进行游戏登录
验证方式有GET
,POST
,JSON
等方式,用到的是erlang
的httpc
模块.
启动
1 2
| inets:start(), ssl:start().
|
GET方式
1 2
| Url = "http://xxx.com?a=1&b=2&c=3", httpc:request(get, {Url, []}, [{timeout, 20000}], []).
|
POST方式
1 2 3
| Url = "http://xxx.com", PostStr = "a=1&b=2&c=3", httpc:request(post, {Url, [], "application/x-www-form-urlencoded", PostStr}, [{version, "HTTP/1.1"}, {timeout, 10000}], []).
|
JSON方式
1 2 3 4
| SendData= [{"sign", MD5}], SendJson = rfc4627:encode(to_rfc4627(SendData)), Url = "http://xxx.com", httpc:request(post, {Url, [], "application/json; charset=utf-8", SendJson}, [{version, "HTTP/1.1"}, {timeout, 10000}], []).
|
坑
- Url
在拼接字符串的时候,Url=Url_1++Url_2
,生成的字符串可能是Url= [123, 123, 33, 2]
,使用Url = binary_to_list(list_to_binary(TmpUrl))
避免;PostStr也类似,如果参数支持binary()的话,果断传递binary()。