none
Powershell POST запрос RRS feed

  • Вопрос

  • Есть сайт http://pr.nca.by/
    На сайте заполняю фильтры следующим образом
    https://lh3.googleusercontent.com/-oPxpB8zyYKQ/V8mJqp5Ti8I/AAAAAAAADV0/ok3MbqiRD1I/s0/screenshot%2525202016-09-02%252520003.jpg
    Жму кнопку поиск и получаю следующий результат
    https://lh3.googleusercontent.com/-GpZPGjAp-bo/V8mJw_Fs3YI/AAAAAAAADV4/PTQuBeTYGo0/s0/screenshot%2525202016-09-02%252520004.jpg
    А именно меня интересует цифра 374

    Хочу средствами powershell отправить сайту POST запрос
    Чтобы в ответе на POST запрос получить эту же цифру 374

    В FF+Firebug отследил что ответ возвращается вот в такой xml
    https://lh3.googleusercontent.com/-rEv1thF7Cyw/V8nEBd599WI/AAAAAAAADWY/rxPPuPmwLQc/s0/screenshot%2525202016-09-02%252520008.jpg

    заголовки ответа и запроса
    https://lh3.googleusercontent.com/-uzQlWrKqz-8/V8nEUPDUl2I/AAAAAAAADWc/RVym0wMoBqM/s0/screenshot%2525202016-09-02%252520009.jpg

    Сам POST запрос
    https://lh3.googleusercontent.com/-CcsSpmVZhWw/V8nEpCZF9XI/AAAAAAAADWg/AnRr_nvVRv8/s0/screenshot%2525202016-09-02%252520010.jpg

    Нашел вот такой пример кода чтобы написать POST
    http://powershell.com/cs/blogs/tips/archive/2010/04/29/sending-post-data-via-powershell.aspx

    Но как не старался его переделать под свой случай
    Но у меня пока не получилось.
    Прошу помощи в написании нужного куска кода.
    2 сентября 2016 г. 18:33

Ответы

  • $s = Invoke-WebRequest http://pr.nca.by/ -SessionVariable sb
    $val = $sb.Cookies.GetCookies("http://pr.nca.by/").Value
    $r = Invoke-WebRequest "http://pr.nca.by/$val.a_request.show_prices_count_test.xml" -ContentType "application/x-www-form-urlencoded" -WebSession $sb -Method Post -Body @{
    	"v_param"="3"
    	"v_objnum"="17030"
    	"v_date_begin"="1.7.2016"
    	"v_date_end"="31.7.2016"
    	"v_sq_begin"="20"
    	"v_sq_end"="200"
    	"v_purpose"="40101"
    	"v_soato"="5000000000"
    	"v_typ"="3"
    	"v_name"=""
    	"v_pr_b"="25000"
    	"v_pr_e"="2500000"
    	"v_cur"="4"
    	"v_url"="http//pr.nca.by/"
    	"v_room"=""
    	"v_floor_beg"=""
    	"v_floor_end"=""
    	"v_floor_number_beg"=""
    	"v_floor_number_end"=""
    	"v_input_date_beg"=""
    	"v_input_date_end"=""
    	"v_purpose_KSforIP"="-1"
    	"v_wallmat"=""
    }
    ([xml]$r.Content).response.rowcount_all

    Вывод:

    PS C:\> $r.Content
    <?xml version="1.0" encoding="utf-8"?>
    <response type="show_info_count">
    <rowcount_all>375</rowcount_all>
    </response>
    
    PS C:\> ([xml]$r.Content).response.rowcount_all
    375

    • Предложено в качестве ответа Vector BCOModerator 3 сентября 2016 г. 10:41
    • Помечено в качестве ответа korggrodno3 4 сентября 2016 г. 8:35
    3 сентября 2016 г. 10:16
    Отвечающий