我已经阅读了Stack上的其他一些帖子,但是我无法让它工作.当我在我的
Windows机器上的git中运行curl命令时,当我将其转换为asp.net时,它工作正常.它不工作:
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); }
这是BeeBole API.它挺直的fwd. http://beebole.com/api但是,当我运行以上时,我收到以下500错误:
解决方法
WebRequest的默认HTTP方法是GET.尝试将其设置为POST,因为API正在期待
myReq.Method = "POST";
我假设你发贴了一些东西.作为测试,我将从卷曲示例中发布相同的数据.
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),data.Length); } WebResponse wr = myReq.GetResponse(); Stream receiveStream = wr.GetResponseStream(); StreamReader reader = new StreamReader(receiveStream,Encoding.UTF8); string content = reader.ReadToEnd(); Response.Write(content);
原文地址:https://www.jb51.cc/aspnet/249885.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。