I try to download image via libcurl (I know other options to download, but I need to get it done via libcurl)
When I download & save the image, I can not open it. The file size is different as when downloading file myself.
using System;
using System.Windows.Forms;
using SeasideResearch.LibCurlNet;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
HTTP cURL = new HTTP();
cURL.CurlInit();
// Getting Data - Downloading the picture
String data = cURL.HTTPGet("http://www.hcs.harvard.edu/csharp/Logo1.png");
// Saving Picture
HTTP.save_file("bilde2.jpg", data);
}
}
class HTTP
{
public Easy easy;
public string SockBuff;
public void CurlInit()
{
Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);
}
public string HTTPGet(string URL)
{
easy = new Easy();
Easy.WriteFunction wf = new Easy.WriteFunction(OnWriteData);
easy.SetOpt(CURLoption.CURLOPT_URL, URL);
easy.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf);
//easy.SetOpt(CURLoption.CURLOPT_WRITEDATA, f);
easy.Perform();
return SockBuff;
}
public Int32 OnWriteData(Byte[] buf, Int32 size, Int32 nmemb, Object extraData)
{
SockBuff = SockBuff + System.Text.Encoding.UTF8.GetString(buf);
return size * nmemb;
}
static public void save_file(string file_name, string text_to_write)
{
using (FileStream stream = new FileStream(file_name, FileMode.Create))
{
using (BinaryWriter writer = new BinaryWriter(stream))
{
//writer.Write("hello");
writer.Write(text_to_write);
writer.Close();
}
}
}
}
}
What am I doing wrong here ?