Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

curl Request with ASP.NET

Tags:

I have read some other posts on Stack but I can't get this to work. It works fine on my when I run the curl command in git on my windows machine but when I convert it to asp.net it's not working:

 private void BeeBoleRequest()     {            string url = "https://mycompany.beebole-apps.com/api";          WebRequest myReq = WebRequest.Create(url);                      string username = "e26f3a722f46996d77dd78c5dbe82f15298a6385";         string password = "x";         string usernamePassword = username + ":" + password;         CredentialCache mycache = new CredentialCache();         mycache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));         myReq.Credentials = mycache;         myReq.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(usernamePassword)));          WebResponse wr = myReq.GetResponse();         Stream receiveStream = wr.GetResponseStream();         StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8);         string content = reader.ReadToEnd();         Response.Write(content);     } 

This is the BeeBole API. Its pretty straight fwd. http://beebole.com/api but I am getting a following 500 error when I run the above:

The remote server returned an error: (500) Internal Server Error.

like image 604
Dkong Avatar asked May 17 '13 23:05

Dkong


1 Answers

The default HTTP method for WebRequest is GET. Try setting it to POST, as that's what the API is expecting

myReq.Method = "POST"; 

I assume you are posting something. As a test, I'm going to post the same data from their curl example.

string url = "https://YOUR_COMPANY_HERE.beebole-apps.com/api"; string data = "{\"service\":\"absence.list\", \"company_id\":3}";  WebRequest myReq = WebRequest.Create(url); myReq.Method = "POST"; myReq.ContentLength = data.Length; myReq.ContentType = "application/json; charset=UTF-8";  string usernamePassword = "YOUR API TOKEN HERE" + ":" + "x";  UTF8Encoding enc = new UTF8Encoding();  myReq.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(enc.GetBytes(usernamePassword)));   using (Stream ds = myReq.GetRequestStream()) { ds.Write(enc.GetBytes(data), 0, data.Length);  }   WebResponse wr = myReq.GetResponse(); Stream receiveStream = wr.GetResponseStream(); StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8); string content = reader.ReadToEnd(); Response.Write(content); 
like image 72
Frison Alexander Avatar answered Sep 22 '22 14:09

Frison Alexander