【发布时间】:2020-12-29 22:49:50
【问题描述】:
我创建了一个带有提交按钮的 Web 应用程序。当用户单击此按钮时,将调用 Ajax 调用与 BOT 进行通信。我将以下代码用于 Ajax 函数
<script>
$(document).ready(function () {
$("#btnSend").click(function (e) {
$.ajax({
type: "POST",
url: "GroupChat.aspx/GetData",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert("success!");
},
error: function (response) {
alert(response.d);
}
});
return false;
});
});
</script>
我使用以下代码通过网络方法与 BOT 进行通信
[WebMethod]
public static async Task GetData()
{
Task<TokenResponse> response = GetTokenAsync();
response.Wait();
string token = response.Result.access_token;
List<BOTConstants> lstConstants = new List<BOTConstants>();
lstConstants.Add(new BOTConstants
{
text = "test message",
channelId = "webApp",
serviceUrl = "https://smba.trafficmanager.net/in/",
textFormat = "plain",
type = "message"
});
string json = (new JavaScriptSerializer()).Serialize(lstConstants);
var data = new StringContent(json, Encoding.UTF8, "application/json");
using (var client = new HttpClient())
{
//client.BaseAddress = new Uri("https://mybot.azurewebsites.net");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var result = await client.PostAsync("https://mybot.azurewebsites.net/api/messages", data).ConfigureAwait(false);
string resultContent = await result.Content.ReadAsStringAsync();
Console.WriteLine(resultContent);
}
}
但是,var result = await client.PostAsync("https://mybot.azurewebsites.net/api/messages", data).ConfigureAwait(false); 总是返回错误请求。
谁能帮我解决这个问题,如果上面的代码有任何错误,请纠正我。
【问题讨论】:
-
你从哪里得到的 C# 代码?您可以链接到您遵循的任何示例或文档吗?您的机器人的 api/messages 端点是否设计为接收机器人常量对象数组而不是活动?你能从你的机器人发布相关代码吗?
-
你还在做这个吗?
标签: c# html asp.net ajax botframework