Skip to content

Instantly share code, notes, and snippets.

@graut
Created July 20, 2016 05:36
Show Gist options
  • Save graut/1d1a0935588c5f83d92c4842af9f6569 to your computer and use it in GitHub Desktop.
Save graut/1d1a0935588c5f83d92c4842af9f6569 to your computer and use it in GitHub Desktop.
/*
* Created by SharpDevelop.
* User: ghanshyam
* Date: 13-07-2016
* Time: 17:10
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Net;
using System.Web;
using System.IO;
using System.Security.Cryptography.X509Certificates;
namespace Test1
{
class Program
{
public Program()
{
}
/*******Please insert your Domain Name and email Api Key here*********/
const string domain = "your_domain";
const string email = "your_email";
const string apiKey = "your_api_key";
/***************************************************************/
const string domainUrl = "https://" + domain + ".agilecrm.com/dev/api/";
private static string agileCRM(string nextUrl, string method, string data, string contenttype)
{
try {
string url = domainUrl + nextUrl;
//Console.WriteLine(url);
String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(email + ":" + apiKey));
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
if (!string.IsNullOrEmpty(data))
request.ContentLength = data.Length;
request.Method = method;
request.ContentType = contenttype;
request.Accept = "application/json";
request.Headers.Add("Authorization", "Basic " + encoded);
string result = null;
switch (method) {
case "GET":
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) {
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
result = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
}
return result;
break;
case "POST":
using (Stream webStream = request.GetRequestStream())
using (StreamWriter requestWriter = new StreamWriter(webStream, System.Text.Encoding.ASCII)) {
requestWriter.Write(data);
}
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) {
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
result = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
}
return result;
break;
case "PUT":
using (Stream webStream = request.GetRequestStream())
using (StreamWriter requestWriter = new StreamWriter(webStream, System.Text.Encoding.ASCII)) {
requestWriter.Write(data);
}
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) {
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
result = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
}
return result;
break;
case "DELETE":
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) {
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
result = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
}
return result;
break;
default:
return "nothing";
break;
}
} catch (Exception e) {
return "Exception caught!!!\n" + e.ToString();
}
}
static void Main(string[] args)
{
// Get contact by Email
string result1 = agileCRM("contacts/search/email/samson@walt.ltd", "GET", null,"application/json");
Console.WriteLine("Done");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment