cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re:Re: my simple program works differently from linux curl command

From: Richard <codemonkee_at_163.com>
Date: Wed, 15 Jun 2011 21:58:21 +0800 (CST)

thanks to Fabian, I will try correcting it following your hint.

Richard

At 2011-06-14 16:28:30£¬"Fabian Keil" <freebsd-listen_at_fabiankeil.de> wrote:

>Richard <codemonkee_at_163.com> wrote:
>
>>
>> Hi,
>>
>>
>> I have write a simple program based on libcur, it simpley download data and write to a local file.
>> In most of the cases, it works fine, but some special case, it works differently from linux curl command.
>>
>> The main part of my program looks like this:
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>> 62 CURL* handler = curl_easy_init();
>> 65 int ret = CURLE_OK;
>> 266 ret += curl_easy_setopt(handler, CURLOPT_ERRORBUFFER, errBuffer);
>> 267 ret += curl_easy_setopt(handler, CURLOPT_VERBOSE, 1);
>> 268 ret += curl_easy_setopt(handler, CURLOPT_URL, url);
>>
>> 270 ret += curl_easy_setopt(handler, CURLOPT_WRITEFUNCTION, write_image_data);
>> 271 ret += curl_easy_setopt(handler, CURLOPT_WRITEDATA, imgData);
>>
>> 273 ret += curl_easy_perform(handler);
>> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>
>> In a special case, this url:
>> http://www.my7475.com/wp-content/uploads/2008/09/my747508093002.jpg
>> My program fails in getting image, the printed out message looks like this:
>> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>> * About to connect() to www.my7475.com port 80
>> * Trying 119.57.53.145... * connected
>> * Connected to www.my7475.com (119.57.53.145) port 80
>> > GET /wp-content/uploads/2008/09/my747508093002.jpg HTTP/1.1
>> Host: www.my7475.com
>> Accept: */*
>>
>> < HTTP/1.1 500 Internal Server Error
>> < Date: Tue, 14 Jun 2011 07:44:48 GMT
>> < Server: Apache/2.2.15 (Unix) PHP/5.2.13
>> < Content-Length: 535
>> < Connection: close
>> < Content-Type: text/html; charset=iso-8859-1
>> * Closing connection #0
>> download size: 535
>> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>> I checked the downloaded content, it is just a text message telling me internal server error.
>> But if I use curl with default option and verbose mode, it download the image succesfully
>> and print out message like this:
>> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
>> * About to connect() to www.my7475.com port 80
>> * Trying 119.57.53.145... connected
>> * Connected to www.my7475.com (119.57.53.145) port 80
>> > GET /wp-content/uploads/2008/09/my747508093002.jpg HTTP/1.1
>> > User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
>> > Host: www.my7475.com
>> > Accept: */*
>> >
>> < HTTP/1.1 200 OK
>> < Date: Tue, 14 Jun 2011 07:46:22 GMT
>> < Server: Apache/2.2.15 (Unix) PHP/5.2.13
>> < Last-Modified: Fri, 19 Mar 2010 12:46:33 GMT
>> < ETag: "19689e6-5a17-48226bcb21c40"
>> < Accept-Ranges: bytes
>> < Content-Length: 23063
>> < Content-Type: image/jpeg
>> % Total % Received % Xferd Average Speed Time Time Time Current
>> Dload Upload Total Spent Left Speed
>> 100 23063 100 23063 0 0 6216 0 0:00:03 0:00:03 --:--:-- 410kConnection #0 to host www.my7475.com left intact
>>
>> * Closing connection #0
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>
>> From the above two verbose messages, it is really hard for me to figure out what is wrong.
>
>The server seems to be expecting an User-Agent:
>
>fk@r500 ~ $curl --head 'http://www.my7475.com/wp-content/uploads/2008/09/my747508093002.jpg'
>HTTP/1.1 200 OK
>Date: Tue, 14 Jun 2011 08:27:27 GMT
>Server: Apache/2.2.15 (Unix) PHP/5.2.13
>Last-Modified: Sat, 12 Feb 2011 02:53:52 GMT
>ETag: "19689e6-5a17-48226bcb21c40"
>Accept-Ranges: bytes
>Content-Length: 23063
>Keep-Alive: timeout=10, max=100
>Connection: Keep-Alive
>Content-Type: image/jpeg
>Proxy-Connection: keep-alive
>
>fk@r500 ~ $curl -H 'User-Agent:' --head 'http://www.my7475.com/wp-content/uploads/2008/09/my747508093002.jpg'
>HTTP/1.1 500 Internal Server Error
>Date: Tue, 14 Jun 2011 08:27:41 GMT
>Server: Apache/2.2.15 (Unix) PHP/5.2.13
>Connection: close
>Content-Type: text/html; charset=iso-8859-1
>Proxy-Connection: keep-alive
>
>Fabian

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2011-06-15