3 / 3 / 1
Регистрация: 05.05.2013
Сообщений: 42

Отправить post запрос на JSON

28.02.2014, 13:23. Показов 6582. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет , использую WebBrowser что бы отправлять пост запросы , и для сайта realty.mail.ru нужно отправить сюда --- http://pro.realty.mail.ru/add/jsonSave/ (так показывай сниффер) , но при попытке из программы передать данные на этот адрес , предлагает скачать файл JSON
вот код
C#
1
2
3
4
5
webBrowser1.Navigate("http://pro.realty.mail.ru/addblock/");
            String postData = "block_uid=&last_version=&created_at=&payer_id=5006502&bargain_type=sale&type_id=9&client_id=5006691&price_origin=1111111111&currency=RUR&unit_type=total&description=http%3A%2F%2Fpro.realty.mail.ru%2Fadd%2FjsonSave%2Fhttp%3A%2F%2Fpro.realty.mail.ru%2Fadd%2FjsonSave%2Fhttp%3A%2F%2Fpro.realty.mail.ru%2Fadd%2FjsonSave%2Fhttp%3A%2F%2Fpro.realty.mail.ru%2Fadd%2FjsonSave%2Fhttp%3A%2F%2Fpro.realty.mail.ru%2Fadd%2FjsonSave%2Fhttp%3A%2F%2Fpro.realty.mail.ru%2Fadd%2FjsonSave%2Fhttp%3A%2F%2Fpro.realty.mail.ru%2Fadd%2FjsonSave%2Fhttp%3A%2F%2Fpro.realty.mail.ru%2Fadd%2FjsonSave%2Fhttp%3A%2F%2Fpro.realty.mail.ru%2Fadd%2FjsonSave%2Fhttp%3A%2F%2Fpro.realty.mail.ru%2Fadd%2FjsonSave%2Fhttp%3A%2F%2Fpro.realty.mail.ru%2Fadd%2FjsonSave%2F%D0%BC&classificators%5Brooms_count%5D%5Bvalue%5D=5&classificators%5Bcommon_area%5D%5Bvalue%5D=66&classificators%5Bkitchen_area%5D%5Bvalue%5D=22&classificators%5Bliving_area%5D%5Bvalue%5D=44&classificators%5Bfloor%5D%5Bvalue%5D=5&classificators%5Bfloors_count%5D%5Bvalue%5D=12&classificators%5Brenovation%5D%5Bvalue_id%5D=0&classificators%5Bflat_type%5D%5Bvalue_id%5D=0&classificators%5Bbathroom_type%5D%5Bvalue_id%5D=0&classificators%5Brooms_area%5D%5Bvalue%5D=&classificators%5Bhouse_type%5D%5Bvalue_id%5D=0&classificators%5Bbuilding_year%5D%5Bvalue%5D=&classificators%5Bname%5D%5Bvalue%5D=&classificators%5Bbuilding_serial%5D%5Bvalue%5D=&classificators%5Bceil_height%5D%5Bvalue%5D=&latitude=53.889947&longitude=27.573334&object_id%5B%5D=1111374&object_id%5B%5D=1111375&geo_relations%5Bsubway%5D%5Bobject_id%5D=0&geo_relations%5Bsubway%5D%5Bvalue%5D=&geo_relations%5Bsubway%5D%5Brelation_type_id%5D=4&raw_address=%D0%B7%D0%B0%D1%81%D0%BB%D0%B0%D0%B2%D1%81%D0%BA%D0%B0%D1%8F+25&company_name=Vlad+Shelepkov&contact_phone-country=1111374&contact_phone=%2B375+(29)+752-86-77&contact_email=crag.hack%40mail.ru&external_url=&is_agreed=1";
            byte[] Bytes = Encoding.UTF8.GetBytes(postData);
            string AdditionalHeaders = "Content-Type: application/x-www-form-urlencoded" + Environment.NewLine;
            webBrowser1.Navigate("http://pro.realty.mail.ru/add/jsonSave/", "", Bytes, AdditionalHeaders);
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.02.2014, 13:23
Ответы с готовыми решениями:

Не получается отправить Post запрос
Есть сайт когда туда заходишь надо указать что тебе больше 18 и т.д. Хочу программно это сделать. Вот что просниффил: POST...

Отправить POST-запрос через Awesomium
Здравствуйте, господа! Нужен пример отправки post запроса через Awesomium, например, по нажатию кнопки. Есть url, на который нужно...

Отправить Post-запрос средствами XNet
Доброго суток всем. Проблема с отправлением post-запроса, средствами xNet. Нужно отправить заполненную форму, в формате: ...

5
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
01.03.2014, 11:32
Crag Hack, ну так используйте для пост запросов класс httpWebRequest с методом POST... Как и для GET...
1
3 / 3 / 1
Регистрация: 05.05.2013
Сообщений: 42
03.03.2014, 22:08  [ТС]
Спасибо за ответ , но не будет результат такой же? насколько я понимаю что бы запостить нужно будет еще передавать куки (для авторизации ) , поэтому я решил по простому сделать через веббраузер , который сам хранит куки , сделал несколько сайтов но маил ру не получается, расшифровывал содержимое , вот что он передает "{"status":false,"reason":{"login":" Не указаны логин\/пароль для входа в Личный кабинет"}}"
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
03.03.2014, 23:42
Лучший ответ Сообщение было отмечено Crag Hack как решение

Решение

Crag Hack, куки надо хранить, есть пример на powershell, чуть позже мб скину, если доступ будет)
1
3 / 3 / 1
Регистрация: 05.05.2013
Сообщений: 42
03.03.2014, 23:57  [ТС]
Не надо спасибо , попробую доделать первую версию уже на браузере (не много осталось) , потом буду переделывать на httpWebRequest , у меня получилось отправить данные только все равно присылается этот json файл (я понимаю что если бы я делал нормально через httpWebRequest то такого бы не случилось) но может можно как-либо отправить пост запрос и не принимать данные , или же запретить скачивание файлов ?

Добавлено через 12 минут
Пока придумал только
C#
1
2
3
4
5
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
            }
            timer1.Start();

в таймере
C#
1
2
SendKeys.Send("{ENTER}");
            timer1.Stop();
т.е. по прошествию 0.1 секунды нажимает интер , и убирает это сообщение , конечно это не выход , да и работает он 1 раз если повторно нажать то не нажимается интер почему-то
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
04.03.2014, 18:14
Crag Hack, в общем, когда вы посылаете первый GET-запрос (логинитесь или просто заходите на домашнюю страницу), то вам выдается пакет куков (в моем случае, это были куки с айдишником сессии JSESSIONID), этот пакет вы затем должны использовать на протяжении всех последующих запросов. Пример есть, но смогу показать только завтра, если не забуду.

Добавлено через 17 часов 17 минут
Забыл..

Добавлено через 4 минуты
С другой стороны, RDP спасет мир.

Вот так у меня выглядит функция, которая принимает 3 параметра: урл, куки-контейнер и post-data (если запрос - POST). Возвращает же она строку ответа:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
function GetRequest([string] $url, [System.Net.CookieContainer] $cookieContainer, [string] $postParams, [string] $userAgent)
{
        [system.Net.HttpWebRequest] $request = [system.Net.HttpWebRequest]::Create($url)
        $request.CookieContainer = $cookieContainer
        $request.UserAgent = $userAgent
        
        if (![string]::IsNullOrEmpty($postParams))
        {
            $request.Method = "POST"
            $request.ContentType = "application/x-www-form-urlencoded"
            $request.ContentLength = $postParams.Length
            [System.IO.TextWriter] $requestWriter = New-Object System.IO.StreamWriter($request.GetrequestStream())
            $requestWriter.Write($postParams)
            $requestWriter.Close()
            $requestWriter.Dispose();
        }
        
        return [system.Net.HttpWebRequest] $request
}
 
function GetContentFromUrl([System.String] $url, [System.Net.CookieContainer] $cookieContainer, [System.String] $postParams, [string] $userAgent)
{
        try
        {
            $request = GetRequest $url $cookieContainer $postParams $userAgent
            $Response = $request.GetResponse()
 
            [System.IO.TextReader] $contentStream = New-Object System.IO.StreamReader($Response.GetResponseStream())
            $content = [System.Web.HttpUtility]::HtmlDecode($contentStream.ReadToEnd())
            $contentStream.Close()
            $Response.Close()
 
            if($Response.StatusCode -ne 200)
            {
                throw 'non-200 status code'
            }
        
            if ($content.Contains('Забыли пароль?'))
            {
                throw 'Неверные логин-пароль'
            }
            
            return $content
        }
        catch [System.Net.WebException]
        {
            try
            {
                #       Write-Host $Error[0] -foregroundcolor "magenta"
                $exception = $_.Exception 
                $status = GetStatusDescription( $exception.Status)
                
                $Error = GetExceptionDetails( $exception)
                $errorInfo = GetErrorInfo($exception)
                $errorDescription = GetErrorDescription($exception)
                
                $responseText = GetFailedResponseText -exception ($exception)
                
                if($exception.Response -ne $null)
                {
                    $exception.Response.Close()
                }
            
                SetResult -result $false -info $errorInfo -properties (GetAdditionalProperties -pingUrl $url -responseUri $exception.Response.ResponseUri -httpResponseStatusCode ($exception.Response.StatusCode) -errorCode ($ErrorCode.WebError) -errorDescription $errorDescription -responseText ($responseText))            
                Exit
            }
            catch [System.Exception]
            {
                [System.String] $resultText = "При получении ответа произошла ошибка :{0} {1} {2} " -f ($status, $exception, $exception.GetType())
                SetResult -result $false -info $errorInfo -properties (GetAdditionalProperties -pingUrl $url -resultCount 0 -errorDescription $errorDescription -httpResponseStatusCode 0) 
                Exit
            }
        }     
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.03.2014, 18:14
Помогаю со студенческими работами здесь

Как отправить файл через POST-запрос
как отправить файл через POST запрос?

Как отправить POST запрос и проверить правильные ли данные
Добрый день! Мне необходимо посылать POST запрос на страницу "http://IP/login.php". Прослушал сниффером. В запросе передаются такие...

Как отправить правильный POST запрос с помощью xNet?
Здравствуйте, столкнулся с проблемой которую решить еще не получилось, да и не встречал решений для xNet. Я использую библиотеку xNet для...

Отправить на сервер сначала GET-запрос, а затем POST, не закрывая соединения
Доброго времени суток! Подскажите, как можно отправить на сервер сначала get-запрос, а затем post, не закрывая соединения? Например, мне...

Необходимо перехватить ответ на post-запрос, отредактировать его, и отправить дальше
Ситуация такая пишу свой браузер, специфика задачи не позволяет использовать стандартные, необходимо перехватить ответ на post-запрос, там...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru