Удалить (MediaWiki) страницу с C # (HTTP POST) - PullRequest
2 голосов
/ 03 декабря 2009

Я пытаюсь удалить страницу, подобную этой:

WebClient wClient = new WebClient();
wClient.UploadStringCompleted += new UploadStringCompletedEventHandler(client_UploadStringCompleted);

string str_post = "action=delete" + "&title=Vorlage:" + str_zuloeschendeVorlage + "&token=" + str_token + "%2B%5C";
wClient.UploadStringAsync(new Uri(@"http://localhost/mediawiki/api.php"), "POST", str_post);

Токен не является проблемой (я получил правильный). И я вошел как администратор. Обратный вызов client_UploadStringCompleted называется правильным (с правильным соединением). Код ошибки не возвращается (из API). Результатом является просто код из api.php (без кода ошибки). Но сайт все еще там. Я думаю, что URI или str_post не так.

Пожалуйста, помогите!

Ответы [ 2 ]

2 голосов
/ 04 декабря 2009

Я нашел проблему ...

информация заголовков отсутствовала:

WebClient wClient = new WebClient();
wClient.Headers["Content-Type"] = "application/x-www-form-urlencoded";
wClient.UploadStringCompleted += new UploadStringCompletedEventHandler(client_UploadStringCompleted);

остальная часть кода верна

0 голосов
/ 03 декабря 2009

Почему вы добавляете "% 2B% 25C" в строку запроса? Это переводится как «\» (пробел - антиспеш), что странно, так как оно будет частью полученного токена.

Попробуйте выполнить запрос POST без этих шумовых символов.

...