Webclient POST 405 API错误

时间:2017-09-05 16:35:15

标签: c# .net api post webclient

我曾经写过一些处理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作为来源(以及其他一些主题),但我似乎无法弄清楚问题。

2 个答案:

答案 0 :(得分:1)

找到了我自己的问题的答案:我从HTTP更改为HTTPS协议,同时仍使用HTTP网址。

答案 1 :(得分:0)

另一种可能的解决方案是使用 SecurityProtocol。在通话前试试这个:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;