J'ai lu d'autres articles sur Stack mais je n'arrive pas à faire fonctionner cela. Cela fonctionne bien sur mon lorsque j'exécute la commande curl dans git sur ma machine Windows, mais lorsque je la convertis en asp.net, cela ne fonctionne pas:
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);
}
Il s'agit de l'API BeeBole. Son assez droit avant. http://beebole.com/api mais j'obtiens une erreur 500 suivante lorsque j'exécute ce qui précède:
Le serveur distant a renvoyé une erreur: (500) Erreur de serveur interne.
La méthode HTTP par défaut pour WebRequest est GET. Essayez de le définir sur POST, car c'est ce que l'API attend
myReq.Method = "POST";
Je suppose que vous postez quelque chose. À titre de test, je vais publier les mêmes données de leur exemple curl.
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);