WebRequest POST返回“远程服务器返回错误:(405)方法不允许”。

时间:2012-05-05 14:33:09

标签: c# .net

我正在使用WebRequest通过控制台应用程序将文件发布到组织中的服务器。经过一些在线研究后,我能够提出以下代码;

try
{
    RegisterString("Uploading encrypted file to server....Please wait!!");
    string url = @"http://localhost:3333/MySite/"
    string filepath = @"C:\test.txt";
    WebRequest request = WebRequest.Create(url);
    request.Method = "POST";
    request.PreAuthenticate = true;
    request.Credentials = new NetworkCredential(ftp_username, ftp_password);
    byte[] byteArray = Encoding.UTF8.GetBytes(filePath);
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = byteArray.Length;


    //Here is the Business end of the code...
    Stream dataStream = request.GetRequestStream();
    dataStream.Write(byteArray, 0, byteArray.Length);
    dataStream.Close();
    //and here is the response.
    WebResponse response = request.GetResponse();

    Console.WriteLine(((HttpWebResponse)response).StatusDescription);
    dataStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(dataStream);
    string responseFromServer = reader.ReadToEnd();
    Console.WriteLine(responseFromServer);
    reader.Close();
    dataStream.Close();
    response.Close();

    RegisterString("File uploaded sucessfully");                

    try
    {
        //Delete file after transmission
        File.Delete(filePath);
    }
    catch (Exception ex)
    {
        RegisterString(ex.Message);
    }

    WriteToLog("End");
    System.Threading.Thread.Sleep(5000);
}
catch (Exception ex)
{
    RegisterString(ex.Message);
    System.Threading.Thread.Sleep(5000);
    WriteToLog("End");
}

但是我得到了异常“405 Method Not Allowed”。有什么东西我不见了吗?

1 个答案:

答案 0 :(得分:0)

是ftp服务器吗?如果是这样,该方法应该是PUT,而不是POST。