c# – 使用ASP.NET的Bitrix24 Rest API发布请求
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 使用ASP.NET的Bitrix24 Rest API发布请求,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2240字,纯文字阅读大概需要4分钟。
内容图文
![c# – 使用ASP.NET的Bitrix24 Rest API发布请求](/upload/InfoBanner/zyjiaocheng/811/890ca123a4124ae89579fec8a7ba2eaa.jpg)
Bitrix24 CRM有webhook functional将潜在客户(客户)添加到CRM.所有文档都是用php编写的,但我想使用ASP.NET.以下是他们在php上的表现:
$queryUrl = 'https://restapi.bitrix24.ru/rest/1/31uhq2q855fk1foj/crm.lead.add.json';
$queryData = http_build_query(array(
'fields' => array(
"TITLE" => "NEW LEAD"
),
'params' => array(
"REGISTER_SONET_EVENT" => "Y"
)
));
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData
));
$result = curl_exec($curl);
curl_close($curl);
$result = json_decode($result, 1);
我正在尝试使用ASP.NET做同样的事情,但得到错误400作为响应.我几乎可以肯定问题出在请求参数中,行const string string = @“{{”“fields”“:{”“title”“:”“Test”“}}]”;我已经尝试了很多组合,但没有任何效果.
const string url = @ "https://companyname.bitrix24.ru/rest/14/31uhq2q855fk1foj/crm.lead.add.json";
const string data = @"[{""fields"":{""title"":""Test""}}]";
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(url);
byte[] cred = Encoding.UTF8.GetBytes("email:password");
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(cred));
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpContent content = new StringContent(data, Encoding.UTF8, "application/json");
HttpResponseMessage messge = client.PostAsync(url, content).Result;
string description;
if (messge.IsSuccessStatusCode) {
string result = messge.Content.ReadAsStringAsync().Result;
description = result;
}
解决方法:
Bitrix24支持非常“快乐”与PHP,并不知道其他语言:(经过一些调查,我找到了匿名对象和json.net的方式.你的样本应该看起来像:
var data = new {
fields = new {
TITLE = "NEW LEAD"
},
@params = new {
REGISTER_SONET_EVENT = "Y"
}
};
var contentText = JsonConvert.SerializeObject(data);
var content = new StringContent(contentText, Encoding.UTF8, "application/json");
// and so on with HttpClient
12月13日更新:
有时您不能(或不希望)将字段名称直接放入匿名对象中.所以,可以使用字典:
var data = new
{
ID = someId,
FIELDS = new Dictionary<string, object>()
{
[options.SomeFieldName] = fieldValue,
},
};
内容总结
以上是互联网集市为您收集整理的c# – 使用ASP.NET的Bitrix24 Rest API发布请求全部内容,希望文章能够帮你解决c# – 使用ASP.NET的Bitrix24 Rest API发布请求所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。