cowboy使用restful的例子
直接贴代码,一切尽在不言中
%% cowboy的restful的文档,一定要好好阅读http://ninenines.eu/docs/en/cowboy/HEAD/manual/cowboy_rest/
%% 几大post提交方式https://imququ.com/post/four-ways-to-post-data-in-http.html
%% curl测试命令curl -l -H "Content-type:application/json" -X POST http://127.0.0.1:8080 -d "aaa=bbb"
-module(restful_handler). -export([init/]).
-export([allowed_methods/]).
-export([content_types_provided/]).
-export([content_types_accepted/]).
-export([delete_completed/]).
-export([delete_resource/]). -export([hello_to_html/]).
-export([form_urlencoded_post/]).
-export([form_data_post/]).
-export([json_post/]). init(Req, Opts) ->
{cowboy_rest, Req, Opts}. allowed_methods(Req, State) ->
Methods = [
<<"HEAD">>,
<<"GET">>,
<<"POST">>,
<<"PATCH">>,
<<"DELETE">>,
<<"OPTIONS">>
],
{Methods, Req, State}. content_types_provided(Req, State) ->
Handlers = [
{<<"text/html">>, hello_to_html}, {<<"application/x-www-form-urlencoded">>, form_urlencoded_post},
{<<"multipart/form-data">>, form_data_post},
{<<"application/json">>, json_post}
],
{Handlers, Req, State}. content_types_accepted(Req, State) ->
Handlers = [
{<<"application/x-www-form-urlencoded">>, form_urlencoded_post},
{<<"multipart/form-data">>, form_data_post},
{<<"application/json">>, json_post}
],
{Handlers, Req, State}. delete_completed(Req, State) ->
io:format("will delete resource~n"),
{true, Req, State}. delete_resource(Req, State) ->
io:format("delete resource finish~n"),
{true, Req, State}. hello_to_html(Req, State) ->
Body = <<"html">>,
{Body, Req, State}. form_urlencoded_post(Req, State) ->
{ok, PostVals, _Req2} = cowboy_req:body_qs(Req),
PostVal1 = proplists:get_value(<<"aaa">>, PostVals),
PostVal2 = proplists:get_value(<<"bbb">>, PostVals),
io:format("form_urlencoded_post~p~p~n",[PostVal1,PostVal2]), Body = string:concat(
erlang:bitstring_to_list(PostVal1),
erlang:bitstring_to_list(PostVal2)
),
NewReq = cowboy_req:set_resp_body(erlang:list_to_bitstring(Body),Req),
{true, NewReq, State}. form_data_post(Req, State) ->
{ok, PostVals, _Req2} = cowboy_req:body_qs(Req),
PostVal = proplists:get_value(<<"aaa">>, PostVals),
io:format("form_data_post~p~n",[PostVal]),
NewReq = cowboy_req:set_resp_body(PostVal,Req),
{true, NewReq, State}. json_post(Req, State) ->
{ok, PostVals, _Req2} = cowboy_req:body_qs(Req),
PostVal = proplists:get_value(<<"aaa">>, PostVals),
io:format("json_post~p~n",[PostVal]),
NewReq = cowboy_req:set_resp_body(PostVal,Req),
{true, NewReq, State}.
cowboy使用restful的例子的更多相关文章
- Spring Boot Hello World (restful接口)例子
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- cowboy动态页面的例子
cowboy的动态页用的是erlydtl,需要先安装erlydtl模板引擎,或者你在dep里面添加 创建工程 rebar-creator create-app testCowboy testCowbo ...
- cowboy页面重定向的例子
创建工程 rebar-creator create-app testCowboy testCowboy_app.erl -module(testCowboy_app). -behaviour(appl ...
- JAX-RS 方式的 RESTful Web Service 开发
JAX-RS 方式的 RESTful Web Service 开发 ——基于 CXF+Spring 的实现 Web Service 目前在风格上有两大类,一个是基于 SOAP 协议,一个是完全遵循 H ...
- springMVC学习(11)-json数据交互和RESTful支持
一.json数据交互: json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. springMVC进行json交 ...
- 11_springmvc之RESTful支持
一.理解RESTful RESTful架构,就是一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. RESTful(即Representational Sta ...
- 利用WCF搭建RESTful--纯代码启动
最近学习了这几年忽略了的当前几乎所有的开发技术,有深有浅,而服务层最有兴趣的是RESTfull,看的是java的书.因为不熟悉JSP,于是找了本书细细研读了一次. dotnet的实现也相对简单,网上也 ...
- 详解REST架构风格
编辑推荐: 本文来自于segmentfault.com,一起了解REST的内在,认识REST的优势,而不再将它当作是“理所当然” 引言 作为Web开发者,你可能或多或少了解一些REST的知识,甚至已经 ...
- spring boot集成mybatis(1)
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
随机推荐
- dalvik虚拟内存管理之二——垃圾收集
转载自http://www.miui.com/thread-75028-1-1.html 垃圾收集是dalvik虚拟机内存管理的核心,垃圾收集的性能在很大程度上影响了一个Java程序内存使用的效率.顾 ...
- Dreamweaver_CS6安装与破解,手把手教程
Dreamweaver_CS6安装与破解,手把手教程 | 浏览:11495 | 更新:2015-12-31 10:28 1 2 3 4 5 6 7 分步阅读 Adobe Dreamweaver是一款非 ...
- 转:struts标签之select详解
<html:select>生成HTML<select>元素 <html:option>:生成HTML<option>元素 <html:option ...
- leetcode 107 Binary Tree Level Order Traversal II ----- java
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- 【P1303】苹果二叉树
树归入门题 原题: 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点).这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1.我们用一根树枝两端连接的结点 ...
- linux账户管理[转自vbird]
useraddpasswdchageusermoduserdelfingerchfnchshidgroupaddgroupmodgroupdelgpasswd useradd 完全参考默认值创建一个用 ...
- jQuery序列化后的表单值转换成Json
$.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() ...
- apply通过实例理解
测试->运行环境chrom console >var aaa = {a:1,b:2,c:function(){console.log(this.a)}} 运行结果:undefined &g ...
- FS拓展设置
一.集群测试说明: 1.该测试的主要目的是:让两个注册在不同FS Server上的账号彼此双方通话. 2.测试工具:eyeBeam .LinPhone 3.FS架构图: 上图中两台FS的分机状况如下: ...
- jquery插件参数传递
当传递的参数在函数中未定义时,不会报错,但也不会发生作用,这会造成怎么传递参数不起作用的困惑.