начало я давно уже проложил, я написал макрос для того чтобы он залогинился и запомнил меня (ексель). А вот дальше с пост запросом не пошло и наработки ушли (не сохранил).
Сейчас попробовал ручками с помощью IE это делать, но опять-же столкнулся с проблемами, который возможно можно решить, но я не хочу т.е. ИЕ очень много памяти жрет и достаточно долго работает по сравнению с обычной отправкой запроса на сайт. Конкретно такие вопросы у меня: Как можно отправить запрос на сайт для создания поста и что для этого нужно, у меня снифер поймал следующие данные при отправке :
Нужно ли отправлять все эти данные? и как получить post_ID точнее как он его получает, если не только я могу посты создавать? Если кто сталкивался с подобным подскажите помогите!
К Стати у этого сайта база на МУСКУЛЕ, если кто знает как это сделать с его помощью возможно подскажите.
Я сейчас играюсь со значениями, может и получится сделать.
Код
Sub PostForPostWP()
'On Error Resume Next
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlhttp.Open "POST", "http://nonator.com/wp-login.php", "True"
xmlhttp.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ' чтобы избежать кеширования
Dim POST() As Byte, PostData$
PostData = "log=test&pwd=test&rememberme=forever&wp-submit=%D0%92%D0%BE%D0%B9%D1%82%D0%B8&redirect_to=http%3A%2F%2Fnonator.com%2Fwp-admin%2F&testcookie=1"
' PostData = PostData & "log=test"
' PostData = PostData & "&pwd=test"
' PostData = PostData & "&rememberme=forever"
' PostData = PostData & "&wp-submit=Войти"
' 'PostData = PostData & "&redirect_to=http://nonator.com/wp-admin/post-new.php" 'post-new.php
' PostData = PostData & "&testcookie=1"
POST = StrConv(PostData, vbFromUnicode)
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send (POST): DoEvents
If xmlhttp.Status <> 200 Then Exit Sub
Debug.Print xmlhttp.responseText
Set xmlhttp = Nothing
End Sub
Ага разобрался Мне нужно включить кукки и как-то или где-то их хранить.
'Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
Set xmlhttp = CreateObject("WinHttp.WinHttpRequest.5.1")
вот что мне браузер возвращает
Цитата
Осторожно: Режим обслуживания активен! ОШИБКА: Cookies либо заблокированы, либо не поддерживаются вашим браузером. Чтобы использовать WordPress, нужно разрешить cookies.
пробую получить через
Код
Function GetHeader(sURL As String) As String
Dim oXHTTP As Object
Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
oXHTTP.Open "HEAD", sURL, False
oXHTTP.send
GetHeader = oXHTTP.GetAllResponseHeaders()
Dim c As Range
End Function
Иван, воспользуйтесь браузером Google Chrome, и выполните создание поста вручную, - а потом посмотрите, по каким URL какие данные отправляются В браузере Google Chrome нажмите Ctrl + Shift + i, после чего активируйте вкладку NETWORK, — там видно по каждому запросу, какие заголовки запроса, какие данные через POST переданы, какой ответ возвратил сервер, что в куки записалось, и т.д. и т.п.
Обратите внимание: часть данных отправляется через POST, другая часть - в заголовках HTTP запроса (например, заголовок cookie)
PS: Объекта WinHttp.WinHttpRequest вполне достаточно, использовать IE нет необходимости
Спасибо, регулярно пользуюсь вашим сайтом и очень вам благодарен, особенно вашим готовым примером именно с его помощью сейчас отправляю запросы и получаю информацию. Сделал так: Все переписал, потом в точности все это дело отправил, но отправлял с помощью одно и того-же xmlhttp = CreateObject("WinHttp.WinHttpRequest.5.1" я его не пересоздавал, я просто переписал (данные которые отправляются), отправил логин (вроде получилось), потом переписал - xmlhttp.Open "POST", и PostData = "", а потом заново добавил туда данные ну и отправил еще раз уже на создание поста