Как я могу использовать Special:Export для своих целей. Я отправляю следующий заголовок из своего приложения:
string request = "POST en.wikipedia.org/w/index.php?title=Special:Export&action=submit HTTP/1.1\r\n"
"Host: en.wikipedia.org\r\n"
"Content-Length: 32\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"Connection: close\r\n\r\n"
"catname=&pages=ukraine&curonly=1";
но он отображает мне страницу об ошибке:
HTTP/1.0 400 Bad Request Server: squid/2.7.STABLE9 Дата: понедельник, 23 апреля 2012 г. 14:45:12 GMT Тип содержимого: text/html Длина содержимого: 3111 X-Squid-Error: ERR_INVALID_URL 0 X-Cache: MISS из amssq46.esams.wikimedia.org X-Cache-Lookup: NONE из amssq46.esams.wikimedia.org:80 Соединение: близко
Мне нужно создать инструменты для замены ссылок в вики, чтобы помочь в переводе. Я уверен, что какой-то такой инструмент уже существует, но я хочу сделать это сам.
EDITED: я использую С++ и сокеты.
EDITED: новый запрос:
string request = "POST https://en.wikipedia.org/w/index.php?title=Special:Export&action=submit HTTP/1.1\r\n"
//string request = "GET https://en.wikipedia.org/w/index.php?title=Special:Export&pages=ukraine&curonly=1\r\n"
"Host: en.wikipedia.org\r\n"
"User-Agent: MyCoolTool\r\n"
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"
"Accept-Language: en-us,en;q=0.5\r\n"
"Accept-Encoding: gzip, deflate\r\n"
"Content-Length: 32\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"Connection: close\r\n\r\n"
"catname=&pages=Ukraine&curonly=1";
Когда я пытаюсь получить только страницу
string request = "GET http://en.wikipedia.org/wiki/Ukraine\r\n" ...
"User-Agent: YolaTool/0.1\r\n" ...
я имею
Скрипты должны использовать информативную строку User-Agent с контактной информацией, иначе они могут быть заблокированы по IP-адресу без предварительного уведомления.