c# - IIS asp.net C# API Post Method 错误“'远程服务器返回错误:(403) Forbidden.'”
问题描述
我通过 gupshup 创建了一个 viber 机器人。我在win 10中使用IIS服务器运行我的WebForm应用程序。我尝试通过api post方法向我的viberbot发送消息,但c#扼杀了我。(我成功测试了url和参数)
这是我的代码:
protected void viber_msg(String viberid, String strmsg)
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://api.gupshup.io/sm/api/bot/mybotname/msg?apikey=mykey");
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "context={'botname':'mybotname','channeltype':'viber','contextid':'viberid','contexttype':'p2p'}&message="+strmsg;
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
viber_msg("viberuserID", "This is a message");
}
我得到的错误是“ System.Net.WebException: 'The remote server returned an error: (403) Forbidden.'
”也尝试使用 POSTMAN 并"message": "Invalid authentication credentials"
提前获取 Thnx ......
解决方案
protected void viber_msg(String viberid, String message)
{
var client = new RestClient("https://api.gupshup.io/sm/api/bot/mybot/msg?apikey=myapikey");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("context", "{\"botname\": \"mybot\",\"channeltype\" :\"viber\",\"contextid\": \""+viberid+"\",\"contexttype\": \"p2p\"}");
request.AddParameter("message", message);
IRestResponse response = client.Execute(request);
}
protected void Button1_Click(object sender, EventArgs e)
{
viber_msg("viberid", "message");
}
}
RestSharp 库!!!
推荐阅读
- javafx - 如何将 TableColumn 设置为所需的宽度?
- c++ - Qt C++:QFile 不会在 WriteOnly 中打开 *.txt 资源
- java - 在 Java 中通过反射获取私有字段
- c# - 如何强制 Oracle DB 提供结果?
- javascript - 将'yymmdd'格式的日期字符串转换为'MM-DD-YYYY'
- xamarin - 适用于 iOS 和 Android 的 Xamrine.forms 中的条件编译
- javascript - 保存并复制动态创建的 html从一个 DOM 到另一个 DOM 的框(不是框的 .value)?
- python-3.x - 气流测试任务有效,但在 dag 中运行失败
- email - MailApp.sendEmail 函数运行没有错误,但没有发送电子邮件
- stack - 堆栈 Windows 管理器程序操作方法