www_tools http client

Shawn Pearce spearce@REDACTED
Tue Jan 14 22:53:04 CET 2003


Ok, new info:

I was calling it with:

url:raw_get_url("http://xenon:80)/", 6000).

This was giving me a problem as IIS (the webserver at xenon, port 80)
was responding with "400 Bad Request".  Turns out the request line
looked like:

	Cmd=["GET ",[]," HTTP/1.0\r\n\r\n"]

bug in the URL parser?

So I tried:

49> url:raw_get_url("http://xenon:80/index",6000).
Cmd=["GET ","index"," HTTP/1.0\r\n\r\n"]
url_server: fetching "xenon" 80 "index"

Which is also illegal, as "index" is missing the leading /.  Turns
out this works:

50> url:raw_get_url("http://xenon:80//index",6000).
Cmd=["GET ","/index"," HTTP/1.0\r\n\r\n"]
url_server: fetching "xenon" 80 "/index"
Socket = #Port<0.130>
What the? {error,closed}

And gen_tcp provides the closed message, I just didn't handle it.

So somehow IIS is killing the socket on me and as a result is making
Erts think the socket is no longer a socket, and therefore we can't
close it...  odd..

-- 
Shawn.




More information about the erlang-questions mailing list