cURL / Mailing Lists / curl-library / Single Mail


(no subject)

From: <>
Date: Wed, 22 Apr 2009 19:27:04 +0200 (CEST)


    I'm using libcurl 7.19.4 with Visual C++ 2008 express edition
(9.0.30729.1 SP) on Windows Vista Business. I'm trying to get the html
of an online dictionary page, but:

- the page has some sort of
redirect (I'm not able to block it from browsers)
- libcurl gets only a
partial and broken html

In my code, I define a webpage() method that,
given an url, retrieves the html code.
I directly took the code from an
example on the curl website.
Here's it:

        static void *myrealloc(void
*ptr, size_t size);
        static size_t WriteMemoryCallback(void *ptr,
size_t size, size_t nmemb, void *data);

        struct MemoryStruct {
                size_t size;

        static void *myrealloc(void *ptr, size_t
                if(ptr) return realloc(ptr, size);
                else return malloc

        static size_t WriteMemoryCallback(void *ptr, size_t size,
size_t nmemb, void *data)
                size_t realsize = size * nmemb;
MemoryStruct *mem = (struct MemoryStruct*)data;
                mem->memory =
(char*)myrealloc(mem->memory, mem->size + realsize + 1);
>memory) {
                        memcpy(&(mem->memory[mem->size]), ptr, realsize);
>size += realsize;
                        mem->memory[mem->size] = 0;

        string webpage(const string& url)

                struct MemoryStruct chunk;
                chunk.memory = NULL;

                chunk.size = 0;

curl_handle = curl_easy_init();
CURLOPT_URL, url.c_str());
(curl_handle, CURLOPT_WRITEDATA, (void*)&chunk);
(curl_handle, CURLOPT_USERAGENT, "libcurl-agent/1.0");

                string s;
                        s = string(chunk.memory);

                return s;

Then I simply call it with the url "http://old.demauroparavia.

  string html = webpage("http://old.demauroparavia.

but here's what it retrieves(I include it in an html
comment, hope this is enough to block html rendering):


<!-- fine contenuto -->

<!-- inizio menu di navigazione -->
<div id="

<h2>Per saperne di pi&ugrave;</h2>
<li><a href="
avvertenze" title="consulta questa sezione per meglio comprendere le
voci del dizionario">Avvertenze per la consultazione </a></li>
href="avanzata" title="consulta le indicazioni per effettuare ricerche
complesse">Ricerca avanzata </a></li><li><a href="abbreviazioni" title="
consulta l'elenco delle abbreviazioni presenti nel dizionario"
>Abbreviazioni </a></li><li><a href="quadri/" title="consulta la tavola
delle coniugazioni">Tavole delle coniugazioni dei verbi </a></li><li><a
href="lemmario" title="consulta il lemmario completo">Lemmario completo
</a></li><li><a href="consultati" title="consulta la statistica dei 500
lemmi pi&ugrave; consultati">I lemmi pi&ugrave; consultati </a></li>


<li><a href="http://www.paravia.
it/vetrina_diz.php" title="Vai alla pagina dei dizionari cartacei sul
sito Paravia">I dizionari Paravia </a></li>
<li><a href="http:
//" title="Vai al Dizionario italiano-inglese Oxford
Paravia Concise">Dizionario italiano-inglese<br />
Oxford Paravia
Concise </a></li>
<li><a href="" title="Vai al
Dizionario DAI Paravia">Dizionario di apprendimento<br />della lingua
inglese </a></li>
<li><a href="" title="Vai
al Dizionario Inglese Longman">Dizionario inglese Longman </a></li>

<li><a href="" title="Vai al
sito ufficiale Mozilla per scaricare il Plugin De Mauro per FireFox">De
Mauro plugin per FireFox </a></li>
<!--<li><a href="
com/downloads/dashboard/search/demauro.html" title="Vai al sito Apple e
scarica il Widget per Dashboard su Mac OS X">Dashboard Widget per Mac

<h2>Scrivi alla redazione</h2>
<li><a href="
email" title="vai alla pagina dalla quale puoi spedire una email alla
redazione">&Egrave; possibile contattare la redazione per chiarimenti o
per segnalare eventuali errori </a></li>

<!-- Include the
Google Friend Connect javascript library. -->
<script type="
text/javascript" src="

<!-- Define the
div tag where the gadget will be inserted. -->
<div id="div-
1230808844540" style="width:196px;margin-left:-10px;border:1px solid
<!-- Render the gadget into a div. -->
<script type="
var skin = {};
skin['HEIGHT'] = '320';
['BORDER_COLOR'] = '#cccccc';
skin['ENDCAP_BG_COLOR'] = '#e0ecff';
['ENDCAP_TEXT_COLOR'] = '#333333';
skin['ALTERNATE_BG_COLOR'] = '#ffffff';
['CONTENT_BG_COLOR'] = '#ffffff';
skin['CONTENT_TEXT_COLOR'] = '#333333';
setParentUrl('/' /* location of rpc_relay.html and canvas.html */);

 { id: 'div-
   site: '02173626207485754890'},

<!-- fine menu di navigazione -->

<!-- inizio colonnino Google
<div id="pubblicita">
<script type="text/javascript"><!--

google_ad_client = "pub-5705799158375171";
google_ad_width = 160;

google_ad_height = 600;
google_ad_format = "160x600_as";
= "text_image";
google_ad_channel ="";
google_color_border = "E1F8F9";

google_color_bg = "E1F8F9";
google_color_link = "CC0000";

google_color_text = "000000";
google_color_url = "0066CC";
<script type="text/javascript"
<!-- fine
colonnino Google -->

<!-- inizio piede di pagina -->
<div id="
        <a href="" title="vai al sito
Paravia" class="copy">PARAVIA</a> - <a href="" title="
vai al sito Pearson Paravia Bruno Mondadori" class="copy">Pearson
Paravia Bruno Mondadori</a> &copy; 1999-2007, tutti i diritti
riservati, P.I. 07415430011
<div id="certificazioni">
href=""><img style="border:0;
width:88px;height:31px" src=""
alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a>
        <a href=""><img style="border:0;width:88px;height:31px" src="" alt="Valid CSS!" /></a>

        <a href="" title="Explanation
of Level Double-A Conformance"><img style="border:0;width:88px;height:
31px" height="32" width="88" src="" alt="
Level Double-A conformance icon, W3C-WAI Web Content Accessibility
Guidelines 1.0"/></a>
<!-- fine piede di pagina -->

<script type="text/JavaScript" >

this block of html is trunked. I 
cannot figure what happens on the browser (firefox 3.0.9 - it 
automatically goes to the other one), I cannot block this redirect even 
if I turn off automatic META redirects in the advanced tab of the 
options window, nor if I turn off javascript.
I'm interested in getting 
the correct html of the page, or a way to get the next, encoded url,  , which I can read correctly.
Many thanks,
Su Tiscali Photo c'รจ la Promozione di Primavera. Stampa le tue foto nei formati 13x17 o 13x19 a soli 0,11 euro
Received on 2009-04-22