[erlang-questions] http:request() - can only do one async query ?
Robert Raschke
rtrlists@REDACTED
Wed Jul 9 10:40:20 CEST 2008
On 7/9/08, Vincent de Phily <vincent.dephily@REDACTED> wrote:
> 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>
>
You also need to forget Rcv.
Robby
More information about the erlang-questions
mailing list