summaryrefslogtreecommitdiffstats
path: root/archives/extend/2014-September/000458.html
blob: 8b93f654036eb6cd0f2c9e5a0343f5317c2ea6b3 (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
83
84
85
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
 <HEAD>
   <TITLE> [99s-extend] Using cowboy_req:body more than once per request
   </TITLE>
   <LINK REL="Index" HREF="index.html" >
   <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Using%20cowboy_req%3Abody%20more%20than%20once%20per%20request&In-Reply-To=%3CCA%2BdV7cT%2BPOGJM%3DnqBcvnP_NoZUa%3D_ZHjGx-9gBQ%2B09Pe7aE2bg%40mail.gmail.com%3E">
   <META NAME="robots" CONTENT="index,nofollow">
   <style type="text/css">
       pre {
           white-space: pre-wrap;       /* css-2.1, curent FF, Opera, Safari */
           }
   </style>
   <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
   
   <LINK REL="Next"  HREF="000462.html">
 </HEAD>
 <BODY BGCOLOR="#ffffff">
   <H1>[99s-extend] Using cowboy_req:body more than once per request</H1>
    <B>Paulo F. Oliveira</B> 
    <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Using%20cowboy_req%3Abody%20more%20than%20once%20per%20request&In-Reply-To=%3CCA%2BdV7cT%2BPOGJM%3DnqBcvnP_NoZUa%3D_ZHjGx-9gBQ%2B09Pe7aE2bg%40mail.gmail.com%3E"
       TITLE="[99s-extend] Using cowboy_req:body more than once per request">paulo.ferraz.oliveira at gmail.com
       </A><BR>
    <I>Mon Sep 15 23:24:20 CEST 2014</I>
    <P><UL>
        
        <LI>Next message: <A HREF="000462.html">[99s-extend] Using cowboy_req:body more than once per request
</A></li>
         <LI> <B>Messages sorted by:</B> 
              <a href="date.html#458">[ date ]</a>
              <a href="thread.html#458">[ thread ]</a>
              <a href="subject.html#458">[ subject ]</a>
              <a href="author.html#458">[ author ]</a>
         </LI>
       </UL>
    <HR>  
<!--beginarticle-->
<PRE>Hi.

I recently implemented a checksum header (X-Checksum) that allows
validating the content of a request's body by hash comparison (just to give
you some context). I'm using the onrequest hook to affect all requests (and
be able to reply appropriately for non-conformance to the hash function
result) but can't figure out how to not read the request body twice, i.e. I
read it in the onrequest hook but later on need to read it again in the
route handler, but I can't (from the manual, for cowboy_req:body: &quot;This
function can only be called once. Cowboy will not cache the result of this
call.&quot;). At the moment, and because the API consumers were in a hurry, the
solution I found (I understand it might be an ugly hack), was to read the
body, store it in the Req's meta (property body, for example) and then
access that property later on, instead of using cowboy_req:body. I'm not
quite happy with this solution and was wondering if there is anything more
elegant that I can implement.

Thanks.

Cheers.

- Paulo F. Oliveira
-------------- next part --------------
An HTML attachment was scrubbed...
URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20140915/26d4e023/attachment-0001.html">http://lists.ninenines.eu/archives/extend/attachments/20140915/26d4e023/attachment-0001.html</A>&gt;
</PRE>



<!--endarticle-->
    <HR>
    <P><UL>
        <!--threads-->
	
	<LI>Next message: <A HREF="000462.html">[99s-extend] Using cowboy_req:body more than once per request
</A></li>
         <LI> <B>Messages sorted by:</B> 
              <a href="date.html#458">[ date ]</a>
              <a href="thread.html#458">[ thread ]</a>
              <a href="subject.html#458">[ subject ]</a>
              <a href="author.html#458">[ author ]</a>
         </LI>
       </UL>

<hr>
<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
mailing list</a><br>
</body></html>