Skip to content
Snippets Groups Projects
Commit f4b01aea authored by Mirar (Pontus Hagland)'s avatar Mirar (Pontus Hagland)
Browse files

helper functions

Rev: lib/modules/Protocols.pmod/HTTP.pmod/module.pmod:1.1
parent cc60ccf3
No related branches found
No related tags found
No related merge requests found
//! module Protocols
//! submodule HTTP
//! method string get_url(string url)
//! Sends a HTTP GET request to the server in the URL
//! and returns the created and initialized <ref>Query</ref> object.
//! 0 is returned upon failure.
//!
//! method array get_url_nice(string url)
//! Returns an array of ({content_type,data})
//! after calling the requested server for the information.
//! 0 is returned upon failure.
object get_url(string url)
{
object con=master()->resolv("Protocols")["HTTP"]["Query"]();
string prot="http",host;
int port=80;
string query;
sscanf(url,"%[^:/]://%[^:/]:%d/%s",prot,host,port,query) == 4 ||
(port=80,sscanf(url,"%[^:/]://%[^:/]/%s",prot,host,query)) == 3 ||
(prot="http",sscanf(url,"%[^:/]:%d/%s",host,port,query)) == 3 ||
(port=80,sscanf(url,"%[^:/]/%s",host,query)) == 2 ||
(host=url,query="/");
if (prot!="http")
error("Protocols.HTTP can't handle %O or any other protocol then HTTP\n",
prot);
con->sync_request(host,port,
"GET "+query+" HTTP/1.0",
(["user-agent":
"Mozilla/4.0 compatible (Pike HTTP client)"]));
if (!con->ok) return 0;
return con;
}
array(string) get_url_nice(string url)
{
object c=get_url(url);
return c && ({c->headers["content-type"],c->data()});
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment