summaryrefslogtreecommitdiffstats
path: root/archives/extend/attachments/20140203/2982cff3/attachment.html
blob: b011e41efc52b0421c490a8f65d357ac41f7bb85 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<tt>
&lt;div&nbsp;dir=&quot;ltr&quot;&gt;My&nbsp;application&nbsp;sends&nbsp;both&nbsp;headers:&nbsp;“Content-type”&nbsp;and&nbsp;“Accept”&nbsp;header&nbsp;using&nbsp;POST&nbsp;method.&lt;div&gt;&lt;br&gt;&lt;div&gt;For&nbsp;POST&nbsp;rest&nbsp;handler&nbsp;do&nbsp;I&nbsp;have&nbsp;to&nbsp;specify&nbsp;both:&nbsp;content_types_accepted&nbsp;and&nbsp;content_types_provided&nbsp;to&nbsp;manage&nbsp;this&nbsp;kind&nbsp;of&nbsp;request?&lt;/div&gt;<br>
<br>
&lt;/div&gt;&lt;/div&gt;&lt;div&nbsp;class=&quot;gmail_extra&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;div&nbsp;class=&quot;gmail_quote&quot;&gt;On&nbsp;Mon,&nbsp;Feb&nbsp;3,&nbsp;2014&nbsp;at&nbsp;7:23&nbsp;PM,&nbsp;Loïc&nbsp;Hoguin&nbsp;&lt;span&nbsp;dir=&quot;ltr&quot;&gt;&lt;&lt;a&nbsp;href=&quot;mailto:[email protected]&quot;&nbsp;target=&quot;_blank&quot;&gt;[email protected]&lt;/a&gt;&gt;&lt;/span&gt;&nbsp;wrote:&lt;br&gt;<br>
<br>
&lt;blockquote&nbsp;class=&quot;gmail_quote&quot;&nbsp;style=&quot;margin:0&nbsp;0&nbsp;0&nbsp;.8ex;border-left:1px&nbsp;#ccc&nbsp;solid;padding-left:1ex&quot;&gt;The&nbsp;content-type&nbsp;provided&nbsp;is&nbsp;relevant&nbsp;for&nbsp;any&nbsp;response,&nbsp;not&nbsp;just&nbsp;responses&nbsp;to&nbsp;GET&nbsp;requests.&nbsp;It&nbsp;defaults&nbsp;to&nbsp;text/html.&nbsp;If&nbsp;your&nbsp;client&nbsp;doesn&#39;t&nbsp;send&nbsp;that&nbsp;content-type,&nbsp;you&nbsp;have&nbsp;to&nbsp;define&nbsp;the&nbsp;callback.&lt;br&gt;<br>
<br>
<br>
&lt;br&gt;<br>
I&nbsp;notice&nbsp;that&nbsp;the&nbsp;documentation&nbsp;is&nbsp;incorrect&nbsp;about&nbsp;the&nbsp;relevant&nbsp;methods&nbsp;for&nbsp;this&nbsp;callback,&nbsp;I&nbsp;will&nbsp;open&nbsp;a&nbsp;ticket&nbsp;to&nbsp;fix&nbsp;it&nbsp;soon.&lt;div&nbsp;class=&quot;im&quot;&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
On&nbsp;02/03/2014&nbsp;07:13&nbsp;PM,&nbsp;Łukasz&nbsp;Biedrycki&nbsp;wrote:&lt;br&gt;<br>
&lt;/div&gt;&lt;blockquote&nbsp;class=&quot;gmail_quote&quot;&nbsp;style=&quot;margin:0&nbsp;0&nbsp;0&nbsp;.8ex;border-left:1px&nbsp;#ccc&nbsp;solid;padding-left:1ex&quot;&gt;&lt;div&nbsp;class=&quot;im&quot;&gt;<br>
Hi,&lt;br&gt;<br>
I&nbsp;have&nbsp;a&nbsp;rest&nbsp;handler&nbsp;that&nbsp;accepts&nbsp;POST&nbsp;and&nbsp;PUT&nbsp;requests&nbsp;with&lt;br&gt;<br>
“application/json”&nbsp;content&nbsp;type.&lt;br&gt;<br>
&lt;br&gt;<br>
I&nbsp;have&nbsp;content_types_accepted&nbsp;function&nbsp;defined&nbsp;as&nbsp;follows:&lt;br&gt;<br>
&lt;br&gt;<br>
content_types_accepted(Req,&nbsp;State)&nbsp;-&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
{[{‘application/json&#39;,&nbsp;from_json}],&nbsp;Req,&nbsp;State}.&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
The&nbsp;problem&nbsp;I&nbsp;have&nbsp;is&nbsp;within&nbsp;a&nbsp;request&nbsp;that&nbsp;has&nbsp;two&nbsp;headers:&lt;br&gt;<br>
&lt;br&gt;&lt;/div&gt;<br>
*Content-type*:&nbsp;application/json&lt;br&gt;<br>
*Accept*:&nbsp;application/json&lt;br&gt;<br>
&lt;br&gt;<br>
With&nbsp;this&nbsp;combination&nbsp;I&nbsp;receive&nbsp;*406*.&lt;div&nbsp;class=&quot;im&quot;&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
You&nbsp;can&nbsp;repeat&nbsp;it&nbsp;with&nbsp;test:&lt;br&gt;<br>
&lt;br&gt;<br>
http_SUITE.erl:&lt;br&gt;<br>
1072&nbsp;rest_postonly(Config)&nbsp;-&gt;&lt;br&gt;<br>
1073&nbsp; &nbsp; &nbsp;Client&nbsp;=&nbsp;?config(client,&nbsp;Config),&lt;br&gt;<br>
1074&nbsp; &nbsp; &nbsp;Headers&nbsp;=&nbsp;[&lt;br&gt;<br>
1075&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{&lt;&lt;&quot;content-type&quot;&gt;&gt;,&nbsp;&lt;&lt;&quot;text/plain&quot;&gt;&gt;},&lt;br&gt;<br>
1076&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{&lt;&lt;&quot;accept&quot;&gt;&gt;,&nbsp;&lt;&lt;&quot;text/plain&quot;&gt;&gt;}&lt;br&gt;<br>
1077&nbsp; &nbsp; &nbsp;],&lt;br&gt;<br>
1078&nbsp; &nbsp; &nbsp;{ok,&nbsp;Client2}&nbsp;=&nbsp;cowboy_client:request(&lt;&lt;&quot;POST&quot;&lt;u&gt;&lt;/u&gt;&gt;&gt;,&lt;br&gt;<br>
1079&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;build_url(&quot;/postonly&quot;,&nbsp;Config),&nbsp;Headers,&nbsp;&quot;12345&quot;,&nbsp;Client),&lt;br&gt;<br>
1080&nbsp; &nbsp; &nbsp;{ok,&nbsp;204,&nbsp;_,&nbsp;_}&nbsp;=&nbsp;cowboy_client:response(&lt;u&gt;&lt;/u&gt;Client2).&lt;br&gt;<br>
&lt;br&gt;<br>
My&nbsp;solution&nbsp;to&nbsp;that&nbsp;was&nbsp;to&nbsp;add&nbsp;a&nbsp;content_types_provided&nbsp;function:&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
content_types_provided(Req,&nbsp;State)&nbsp;-&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
ContentTypes&nbsp;=&nbsp;[{{&lt;&lt;&quot;application&quot;&gt;&gt;,&nbsp;&lt;&lt;&quot;json&quot;&gt;&gt;,&nbsp;&#39;*&#39;},&nbsp;to_json}],&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
{ContentTypes,&nbsp;Req,&nbsp;State}.&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;&lt;/div&gt;<br>
But&nbsp;it&nbsp;is&nbsp;useless&nbsp;as&nbsp;*to_json*&nbsp;callback&nbsp;registered&nbsp;is&nbsp;not&nbsp;called&nbsp;anyhow.&lt;br&gt;<br>
&lt;br&gt;<br>
Adding&nbsp;*content_types_provided*&nbsp;function&nbsp;is&nbsp;a&nbsp;correct&nbsp;solution&nbsp;in&nbsp;this&nbsp;case?&lt;div&nbsp;class=&quot;im&quot;&gt;&lt;br&gt;<br>
Or&nbsp;I&nbsp;am&nbsp;missing&nbsp;something&nbsp;here?&lt;br&gt;<br>
“Accept”&nbsp;header&nbsp;is&nbsp;not&nbsp;relevant&nbsp;only&nbsp;in&nbsp;case&nbsp;of&nbsp;GET&nbsp;requests?&lt;br&gt;<br>
&lt;br&gt;<br>
Thank&nbsp;for&nbsp;help,&lt;br&gt;<br>
Łukasz&nbsp;Biedrycki&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;br&gt;&lt;/div&gt;<br>
______________________________&lt;u&gt;&lt;/u&gt;_________________&lt;br&gt;<br>
Extend&nbsp;mailing&nbsp;list&lt;br&gt;<br>
&lt;a&nbsp;href=&quot;mailto:[email protected]&quot;&nbsp;target=&quot;_blank&quot;&gt;[email protected]&lt;/a&gt;&lt;br&gt;<br>
&lt;a&nbsp;href=&quot;https://lists.ninenines.eu/listinfo/extend&quot;&nbsp;target=&quot;_blank&quot;&gt;https://lists.ninenines.eu/&lt;u&gt;&lt;/u&gt;listinfo/extend&lt;/a&gt;&lt;br&gt;<br>
&lt;br&gt;&lt;span&nbsp;class=&quot;HOEnZb&quot;&gt;&lt;font&nbsp;color=&quot;#888888&quot;&gt;<br>
&lt;/font&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span&nbsp;class=&quot;HOEnZb&quot;&gt;&lt;font&nbsp;color=&quot;#888888&quot;&gt;<br>
&lt;br&gt;<br>
--&nbsp;&lt;br&gt;<br>
Loïc&nbsp;Hoguin&lt;br&gt;<br>
&lt;a&nbsp;href=&quot;http://ninenines.eu&quot;&nbsp;target=&quot;_blank&quot;&gt;http://ninenines.eu&lt;/a&gt;&lt;br&gt;<br>
&lt;/font&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;<br>

</tt>