Reading web pages

Bystroushaak bystrousak at kitakitsune.org
Fri Jan 20 09:16:30 PST 2012


Thats because you are trying writeln binary data, and that is 
impossible, because writeln IMHO checks UTF8 validity.

On 20.1.2012 18:08, Xan xan wrote:
> Before and now, I get this error:
>
> $ ./spider http://static.arxiv.org/pdf/1109.4897.pdf
> [Excepció: std.conv.ConvException@/usr/include/d2/4.6/std/conv.d(1640):
> Can't convert value `HTT' of type string to type uint]
>
> The code:
>
> //D 2.0
> //gdmd-4.6<fitxer>  =>  surt el fitxer amb el mateix nom i .o
> //Usa https://github.com/Bystroushaak/DHTTPClient
> import std.stdio, std.string, std.conv, std.stream;
> import std.socket, std.socketstream;
> import dhttpclient;
>
> int main(string [] args)
> {
>      if (args.length<  2) {
> 		writeln("Usage:");
> 		writeln("   ./spider {<url1>,<url2>, ...}");
> 		return 0;
> 	}
> 	else {
> 		try {
> 			string[string] capcalera = dhttpclient.FFHeaders;
> 			//capcalera["User-Agent"] = "arachnida yottiuma";
> 			HTTPClient navegador = new HTTPClient();
> 			navegador.setClientHeaders(capcalera);
>
> 			foreach (a; args[1..$]) {
> 				writeln("[Contingut: ", cast(ubyte[]) navegador.get(a), "]");
> 			}
> 		}
> 		catch (Exception e) {
> 			writeln("[Excepció: ", e, "]");
> 		}
> 		return 0;
> 	}
> }
>
>
>
> What happens?
>
>
> 2012/1/20 Bystroushaak<bystrousak at kitakitsune.org>:
>> It is unlimited, you just have to cast output to ubyte[]:
>>
>> std.file.write("logo3w.png", cast(ubyte[])
>> cl.get("http://www.google.cz/images/srpr/logo3w.png"));
>>
>>


More information about the Digitalmars-d-learn mailing list