У меня есть этот код, но я получаю ошибку, описанную в заголовке: «Удаленный сервер вернул ошибку: (405) Метод не разрешен».
** Я заменил PUT на POST**
Если я заменю «PUT» на «POST», кажется, что это сработает, поскольку я не получаю сообщения об ошибке, но не загружаю никаких файлов. Я пытаюсь загрузить файл в библиотеку документов в sharepoint (офис 365)
public static void UploadTest()
{
WebClient w = new WebClient();
w.Credentials = new NetworkCredential("username", "password");
var ua = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
w.Headers["Accept"] = "/";
w.Headers.Add(HttpRequestHeader.UserAgent, ua);
byte[] bFile = System.IO.File.ReadAllBytes(@"C:\t.txt");
string ulr = @"http://www.website.com/uploadfolder/";
System.Uri oUri = new System.Uri(ulr);
try
{
w.UploadData(oUri, "POST", bFile);
w.UploadDataCompleted += new UploadDataCompletedEventHandler(oWebClient_UploadDataCompleted);
Console.WriteLine("Uri:" + oUri);
}
catch (Exception ex)
{
throw ex;
}
finally
{
Console.ReadLine();
}
}
PUT
явно не правильный метод. В качестве первого предположения, даже не пытаясь заглянуть в Sharepoint, следует ли вместо этого использоватьPOST
? - person Dan Puzey   schedule 02.10.2012PUT
явно не правильный метод - не знаю, почему вы здесь так непреклонны,PUT
также можно использовать для создания ресурсов, а также для их изменения (по крайней мере, с точки зрения REST). - person James   schedule 02.10.2012PUT
, значит, это проблема с учетными данными. См. также: stackoverflow.com/questions/11658024/ и msmvps.com/blogs/sundar_narasiman/archive/2011/11/30/ - person Willem   schedule 02.10.2012PUT
не может вызвать клиент - это может быть связано с авторизацией, или может быть, что метод должен бытьPOST
. Я же сказал, что это была первая догадка! - person Dan Puzey   schedule 02.10.2012POST
, однако оказалось, чтоPUT
- правильный глагол. @Robuust, вы получаете какое-либо конкретное сообщение вместе с 405? - person James   schedule 02.10.2012