通过 erlang 向服务器发送 http post 请求

 1 -module(t).  
 2   
 3 -export([test/0]).  
 4   
 5 test()->  
 6     Method = post,
 7     URL = "http://192,168.124.10:3000/node/2.0/new",
 8     Header = [],
 9     Type = "application/json",
10     Body = "{\"name\":\"foo.example.com\"}",
11     HTTPOptions = [],
12     Options = [],
13     case httpc:request(Method, {URL, Header, Type, Body}, HTTPOptions, Options) of
14         {ok, {_,_,Body}}-> 
15             io:format("receive body:~p~n", [Body]),
16             {"id", Key} = lists:keyfind("id",1,json:parse(Body)),
17             io:format("Key is:~p~n", [Key]);
18         {error, Reason}->
19             io:format("error cause ~p~n",[Reason])  
20     end.

通过文档可以了解到httpc:request/4的使用方法。如果request方法的参数填对就可以得到{ok,Result}, Result -> 

{status_line(), headers(), Body} | {status_code(), Body} | request_id() },

这里得到的Result 为 {status_line(), headers(), Body},故上面是只取了需要的Body。即Boby为请求的返回值。

这里要注意的是Body的返回值是否符合期望,关联的是request 所提交的Url,键值等等内容是否和后端达成交

互,true -> 期望值;false -> [ ]。

posted @ 2016-08-23 00:06  Shay_黄  阅读(1827)  评论(0编辑  收藏  举报