如何解决IIS asp.net C#API发布方法错误“远程服务器返回错误:403禁止”
我已经通过gupshup创建了一个viber机器人。我在Win 10中使用IIS服务器运行WebForm应用程序。我尝试通过api post方法向viberbot发送消息,但c#勒死了我。(我成功测试了网址和参数)
这是我的代码:
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"
提前谢谢...
解决方法
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库!!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。