我曾经写过一些处理POST
请求的代码。突然间它停止工作,而我在API(它仍然适用于邮递员)和 C#代码中都没有改变。但是当我运行代码时出现405
错误(方法不允许)。
登录方法:
public byte[] logInViaAPI(string email, string password)
{
var response = APIHandler.Post("http://myurlhere", new NameValueCollection() {
{ "email", email },
{ "password", password },
});
return response;
}
这是我的POST方法:
public static byte[] Post(string uri, NameValueCollection pairs)
{
byte[] response = null;
try
{
using (WebClient client = new WebClient())
{
response = client.UploadValues(uri, pairs); //This is where I get my error
}
}
catch (WebException ex)
{
Console.Write(ex);
return null;
}
return response;
}
错误:
发生了'System.Net.WebException'类型的未处理异常 System.dll中
其他信息:
远程服务器返回错误:(405)Method Not Allowed。
我使用HTTP request with post作为来源(以及其他一些主题),但我似乎无法弄清楚问题。
答案 0 :(得分:1)
找到了我自己的问题的答案:我从HTTP更改为HTTPS协议,同时仍使用HTTP网址。
答案 1 :(得分:0)
另一种可能的解决方案是使用 SecurityProtocol。在通话前试试这个:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;