Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 02.01.2016
Сообщений: 9

Api post-запрос для публикации поста в контакте

23.01.2016, 13:59. Показов 5956. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста создать post-запрос для публикации поста в группе Вконтакте.
через get-запрос сделал, но при длинном тексте поста выходит ошибка.


Для начала расскажите пожалуйста алгоритм, как создать post-запрос?

get-запрос делал так:

C#
1
2
3
4
5
6
7
string url = ("https://api.vk.com/method/wall.post?owner_id=-"+group+"&from_group=1&message="+text+"&access_token=" + token);
 
using (var webClient = new WebClient())
         {
             webClient.Encoding = Encoding.UTF8;
             var response = webClient.DownloadString(url);
          }

как делать post-запрос понять не могу.
помогите пожалуйста составить post-запрос.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2016, 13:59
Ответы с готовыми решениями:

Вложения при публикации поста на стене VK. Библиотека VkNet (работа с вк api)
var posts = vk.Wall.Post(new WallPostParams { OwnerId = -148887286, Attachments = "как сюда прикрепить фото, допустим вот это...

Vk api дата публикации поста
Когда посылаю запрос wall.get, и приходит json с набором постов, дата и время публикации поста содержится в date? Если да, то как эту...

API post или get запрос
Работаю в среде Delphi. Хотелось бы узнать, как отдать команду браузеру Google Chrome, чтобы он сделал запрос. Программно не получится т.к....

7
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
23.01.2016, 17:30
Цитата Сообщение от TaPaHTuHo007 Посмотреть сообщение
создать post-запрос?
Берется класс HttpClient(лучше) или HttpWebRequest(хуже, но работает в старом .NET) и создается Примеров море, например последний я выкладывал тут, ну или достаточно опустить глаза вниз страницы.
Но для контакта давно сделаны библиотеки, поэтому все это вам вообще не нужно. Обсуждалось тут и, опять же, много где по форуму.
1
0 / 0 / 0
Регистрация: 02.01.2016
Сообщений: 9
23.01.2016, 21:27  [ТС]
Спасибо, но в библиотеках обычно нет методов загрузки фотографий. А значит с post запросами придется разбираться.
HttpClient видимо работает только в фреймворк 4.5, поэтому буду использовать HttpWebRequest.

попробовал создать, но сообщение не появляется. Можете посмотреть, может найдете где ошибся?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
string text; //текст сообщения
string group; //группа для постинга
string token; //токен авторизации
 
 
HttpWebRequest wallpost = (HttpWebRequest)HttpWebRequest.Create("https://api.vk.com/method/wall.post");
            wallpost.Method = "POST";
            wallpost.ContentType = "application/x-www-form-urlencoded";
            string postData = "https://api.vk.com/method/wall.post?owner_id=-"+group+"&from_group=1&message="+text+"&access_token=" + token;
            Encoding encoding = Encoding.UTF8;
            byte[] byte1 = encoding.GetBytes(postData);
            wallpost.ContentLength = byte1.Length;
            Stream st = wallpost.GetRequestStream();
            st.Write(byte1, 0, byte1.Length);
            st.Close();
            HttpWebResponse httpWebResponse = (HttpWebResponse)wallpost.GetResponse();
            StreamReader reader = new StreamReader(httpWebResponse.GetResponseStream());
            string s = reader.ReadLine();
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
23.01.2016, 21:36
Цитата Сообщение от TaPaHTuHo007 Посмотреть сообщение
Спасибо, но в библиотеках обычно нет методов загрузки фотографий. А значит с post запросами придется разбираться.
Ну даже если их там почему-то не окажется, добавить эти методы в бибилотеку самостоятельно обычно не составляет труда, есть библиотеки с открытым и понятным исходным кодом. Да и я сильно сомневаюсь, что в имеющихся библиотеках их действительно нет. Если эти методы, конечно, вообще есть в API в том виде, в котором они нужны вам, я подробно не копал.
Цитата Сообщение от TaPaHTuHo007 Посмотреть сообщение
Можете посмотреть, может найдете где ошибся?
Чтобы понять где ошибка, надо всего лишь взять Fiddler и сравнить свой запрос с посылаемым правильным. Ну или, как минимум, посмотреть, что в ответе. У вас, как минимум, странное какое-то начало postData, ссылке там разве место? Используйте лучше HttpClient, к нему прилагаются специальные классы для любого типа POST запроса, с ними не ошибешься. А тут забудешь где-то \n поставить и все, уже не работает. Ну а еще лучше, как я уже говорил-библиотеку, где все эти нюансы учтены и не придется часами сидеть над Fiddlerом.
1
0 / 0 / 0
Регистрация: 02.01.2016
Сообщений: 9
25.01.2016, 10:11  [ТС]
HttpClient использовать не могу. использую studio 2010, а там нет 4.5. а установить боле позднюю версию studio не представляется возможным. комп очень слабый и места не хватает на диске.
studio через fiddler не пропускает запрос. говорит, что ошибка безопасности. да и сравнивать мне не с чем.

Только что обнаружил, что запись публикуется, только не в группе, а на моей стене =))

Добавлено через 25 минут
Спасибо, вроде заработало.

изменил в своем коде строчку
C#
1
HttpWebRequest wallpost = (HttpWebRequest)HttpWebRequest.Create("https://api.vk.com/method/wall.post");
на
C#
1
HttpWebRequest wallpost = (HttpWebRequest)HttpWebRequest.Create("https://api.vk.com/method/wall.post?owner_id=-"+group);
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
25.01.2016, 10:41
Цитата Сообщение от TaPaHTuHo007 Посмотреть сообщение
HttpClient использовать не могу. использую studio 2010, а там нет 4.5. а установить боле позднюю версию studio не представляется возможным. комп очень слабый и места не хватает на диске.
studio через fiddler не пропускает запрос. говорит, что ошибка безопасности. да и сравнивать мне не с чем.
Хех, с таким подходом далеко не уедешь... А какое отношение имеет fiddler к студии-понимаю слабо, у меня они вместе отлично работают и никогда проблем не создавали.
0
0 / 0 / 0
Регистрация: 02.01.2016
Сообщений: 9
25.01.2016, 10:48  [ТС]
Спасибо, конечно, за Ваши ответы. Но может быть Вы думаете, что я шучу?
вот ошибка возникающая при включенном fiddlere
"Базовое соединение закрыто: Не удалось установить доверительные отношения для защищенного канала SSL/TLS."
Как ее обойти я к сожалению не знаю.
А для установки нового студио мой компьютер слишком слабый. Не у всех есть средства, что бы купить мощный современный компьютер. После установки более поздней версии студио на жестком диске остается 200 мегабайт свободного пространства.
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
25.01.2016, 11:03
Цитата Сообщение от TaPaHTuHo007 Посмотреть сообщение
вот ошибка возникающая при включенном fiddlere
"Базовое соединение закрыто: Не удалось установить доверительные отношения для защищенного канала SSL/TLS."
С ходу не скажу в чем дело, надо гуглить. По всей видимости, с сертификатами что-то не то.

Не по теме:

Цитата Сообщение от TaPaHTuHo007 Посмотреть сообщение
А для установки нового студио мой компьютер слишком слабый. Не у всех есть средства, что бы купить мощный современный компьютер. После установки более поздней версии студио на жестком диске остается 200 мегабайт свободного пространства.
Ну это, по-моему, уж совсем какая-то жесть. Как на таком компе можно заниматься программированием-не представляю. Там, наверное, HelloWorld полчаса компилируется. Быстрее будет пойти заработать на хотя бы какой-нибудь работающий комп, чем дожидаться, когда отвиснет такой.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2016, 11:03
Помогаю со студенческими работами здесь

POST запрос на Api сервера
Привет. Хочу реализовать на пайтоне отправку запроса на апи сервера. Какой модуль нужен для реализации? Запрос состоит из адреса апи...

Post запрос c логином и паролем на примере api.smsfeedback.ru
Здравствуйте. Ни как не могу разобраться. Как сделать post запрос по такой схеме ...

Использование VK Api для получения определенного поста
Простите за тему в виде "решите за меня задачу и разжуйте все", но просто не знаю что для этого использовать. Есть кнопка. По нажатии на...

На странице редактирования публикации, нужно получить ID автора поста
Пишу модуль. На странице редактирования публикации, нужно получить ID автора поста. Как это сделать?

Ребят, нужно сделать POST запрос на мою Web Api
Смотрите, есть контролер в Api : public class AccountController : ApiController { public string...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru