<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3396214454631431234</id><updated>2011-11-27T15:52:18.796-08:00</updated><title type='text'>C#, C Sharp Help, Tips, Source code, Examples</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://thedotnetframework.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3396214454631431234/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://thedotnetframework.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ray</name><uri>http://www.blogger.com/profile/05174822295339158903</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='http://1.bp.blogspot.com/_AVYMtVpwbaM/TAfkeXrKOVI/AAAAAAAAABA/T85YF-YW6VE/S220/red-sky-california-v.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3396214454631431234.post-2829645824130931090</id><published>2008-06-23T02:00:00.000-07:00</published><updated>2008-06-23T02:11:09.838-07:00</updated><title type='text'>Lets talk about HTTP protocol, and HTTP clients</title><content type='html'>I have been looking for good source on anything HTTPS that retains cookies on multiple threads. Sure there are active x controls you can spend money on, but what is the fun in spending money? Plus there are much easier alternatives out there.&lt;br /&gt;&lt;br /&gt;Now, everyone has heard of Curl, you know the libraries used by PHP to do HTTP, HTTPS, FTP, SFTP, and so on...Well there is also a libcurl for Visual Basic .NET, and Visual C#! Sure its a bitch to get going....but once you do, you'll be making super applications in no time. Here is some example code for C#, and libcurl. You can download the libcurl dll files &lt;a href="http://sourceforge.net/projects/libcurl-net/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The example code i am about to show you is not just so that you can make HTTP posts, and HTTP get requests, its also to manage cookies in a thread safe environment....I will be making changes to this code periodically but im sure there are plenty of people interested in this source code.... here it is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Linq;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Text;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using SeasideResearch.LibCurlNet;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.IO;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;class HTTP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static Easy easy;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static Random rand = new Random();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static string SockBuff;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static string CookieFile = AppDomain.CurrentDomain.BaseDirectory + "cookie" + rand.Next(0, 9) + rand.Next(0, 9) + rand.Next(0, 9) + rand.Next(0, 9) + rand.Next(0, 9) + rand.Next(0, 9) + rand.Next(0, 9) + ".txt";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public static string UserAgent = "Mozilla 5.0";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public static string Proxy = "";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public void Dispose()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        ClearCookies();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public void CurlInit()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public void ClearCookies()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        if (File.Exists(CookieFile))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            File.Delete(CookieFile);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public string HTTPGet(string URL, string Proxy)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        easy = new Easy();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        SockBuff = "";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Easy.WriteFunction wf = new Easy.WriteFunction(OnWriteData);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_URL, URL);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_TIMEOUT, "60");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_USERAGENT, UserAgent);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_COOKIEFILE, CookieFile);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_COOKIEJAR, CookieFile);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_FOLLOWLOCATION, true);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            if (URL.Contains("https"))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYHOST, 1);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYPEER, 0);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            if (Proxy != "")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                easy.SetOpt(CURLoption.CURLOPT_PROXY, Proxy);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                easy.SetOpt(CURLoption.CURLOPT_PROXYTYPE, CURLproxyType.CURLPROXY_HTTP);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.Perform();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.Cleanup();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        catch&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine("Get Request Error");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        return SockBuff;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public string HTTPPost(string URL, string Content, string Proxy)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        easy = new Easy();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        SockBuff = "";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Easy.WriteFunction wf = new Easy.WriteFunction(OnWriteData);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_URL, URL);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_TIMEOUT, "60");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_USERAGENT, UserAgent);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_COOKIEFILE, CookieFile);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_COOKIEJAR, CookieFile);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_POSTFIELDS, Content);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //easy.SetOpt(CURLoption.CURLOPT_POSTFIELDSIZE, Content.Length);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_FOLLOWLOCATION, true);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.SetOpt(CURLoption.CURLOPT_POST, true);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            if (URL.Contains("https"))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYHOST, 1);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYPEER, 0);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            if (Proxy != "")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                easy.SetOpt(CURLoption.CURLOPT_PROXY, Proxy);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                easy.SetOpt(CURLoption.CURLOPT_PROXYTYPE, CURLproxyType.CURLPROXY_HTTP);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.Perform();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            easy.Cleanup();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        catch&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        return SockBuff;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public string SafeString(string data)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        return Curl.Escape(data, data.Length);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public string UnSafeString(string data)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        return Curl.Unescape(data, data.Length);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public static Int32 OnWriteData(Byte[] buf, Int32 size, Int32 nmemb, Object extraData)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        // Console.Write(System.Text.Encoding.UTF8.GetString(buf));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        SockBuff = SockBuff + System.Text.Encoding.UTF8.GetString(buf);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        return size * nmemb;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S: When you paste this code into the Visual C# IDE, it will correctly indent it for  you. This code is by me and you will find it no where else. I hope you like it, leave some comments if you see things that could be improved. Thanks for everyones input!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3396214454631431234-2829645824130931090?l=thedotnetframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thedotnetframework.blogspot.com/feeds/2829645824130931090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3396214454631431234&amp;postID=2829645824130931090' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3396214454631431234/posts/default/2829645824130931090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3396214454631431234/posts/default/2829645824130931090'/><link rel='alternate' type='text/html' href='http://thedotnetframework.blogspot.com/2008/06/lets-talk-about-http-protocol-and-http.html' title='Lets talk about HTTP protocol, and HTTP clients'/><author><name>Ray</name><uri>http://www.blogger.com/profile/05174822295339158903</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='http://1.bp.blogspot.com/_AVYMtVpwbaM/TAfkeXrKOVI/AAAAAAAAABA/T85YF-YW6VE/S220/red-sky-california-v.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3396214454631431234.post-5070025019631887442</id><published>2008-06-23T01:45:00.000-07:00</published><updated>2008-06-23T01:47:57.575-07:00</updated><title type='text'>Welcome to my .NET framework blog!</title><content type='html'>I code in both visual basic .net 2008, and Visual C#. My name is Ray Hernandez, and i am a self taught programmer, brought up in a crazy world. I didn't have everything, i don't come from a rich home, and i am one mean ass programmer. With this blog i plan to help the world, make all that is hard, easy again. I did not go to school for programming. Everything i know now i taught myself, and i am a good listener. Hopefully with this blog setup, we can do something great for the Microsoft programming community. Time to get old school in this bitch....with new toys of course :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3396214454631431234-5070025019631887442?l=thedotnetframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thedotnetframework.blogspot.com/feeds/5070025019631887442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3396214454631431234&amp;postID=5070025019631887442' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3396214454631431234/posts/default/5070025019631887442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3396214454631431234/posts/default/5070025019631887442'/><link rel='alternate' type='text/html' href='http://thedotnetframework.blogspot.com/2008/06/welcome-to-my-net-framework-blog.html' title='Welcome to my .NET framework blog!'/><author><name>Ray</name><uri>http://www.blogger.com/profile/05174822295339158903</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='http://1.bp.blogspot.com/_AVYMtVpwbaM/TAfkeXrKOVI/AAAAAAAAABA/T85YF-YW6VE/S220/red-sky-california-v.jpg'/></author><thr:total>0</thr:total></entry></feed>
