[erlang-questions] http:request() - can only do one async query ?

Vincent de Phily <>
Tue Jul 8 21:45:50 CEST 2008


Hi list,

I want to do asynchronous http requests using the inets module (that's the 
best tool for the job, is it ?), but only the first one seems to work :

$ erl
Erlang (BEAM) emulator version 5.6.3 [source] [64-bit] [smp:2] 
[async-threads:0]

Eshell V5.6.3  (abort with ^G)
1> inets:start().
ok
2> {ok, Ref} = http:request(get, {"http://foobar", []}, [], [{sync, false}]).
{ok,#Ref<0.0.0.72>}
3> receive Rcv -> Rcv after 5000 -> timeout end.
{http,{#Ref<0.0.0.72>,
       {{"HTTP/1.1",200,"OK"},
        [{"connection","Keep-Alive"},
         {"date","Tue, 08 Jul 2008 18:09:21 GMT"},
         {"server","Apache"},
         {"content-length","1053"},
         {"content-type","text/html; charset=UTF-8"},
         {"keep-alive","timeout=15, max=100"}],
        <<"<!DOCTYPE HTML PUBLIC "...>>}}}
4> f(Ref),{ok, Ref} = http:request(get, {"http://foobar", []}, [], [{sync, 
false}]).
{ok,#Ref<0.0.0.89>}
5> receive Rcv -> Rcv after 5000 -> timeout end.
timeout
6>


Works fine with synchronous requests, but I really dont want to use that. What 
am I missing ?
-- 
Vincent de Phily



More information about the erlang-questions mailing list