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

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

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

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста создать 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 с набором постов, дата и время публикации поста...

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

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

7
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
23.01.2016, 17:30 2
Цитата Сообщение от TaPaHTuHo007 Посмотреть сообщение
создать post-запрос?
Берется класс HttpClient(лучше) или HttpWebRequest(хуже, но работает в старом .NET) и создается Примеров море, например последний я выкладывал тут, ну или достаточно опустить глаза вниз страницы.
Но для контакта давно сделаны библиотеки, поэтому все это вам вообще не нужно. Обсуждалось тут и, опять же, много где по форуму.
1
0 / 0 / 0
Регистрация: 02.01.2016
Сообщений: 9
23.01.2016, 21:27  [ТС] 3
Спасибо, но в библиотеках обычно нет методов загрузки фотографий. А значит с 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 4
Цитата Сообщение от TaPaHTuHo007 Посмотреть сообщение
Спасибо, но в библиотеках обычно нет методов загрузки фотографий. А значит с post запросами придется разбираться.
Ну даже если их там почему-то не окажется, добавить эти методы в бибилотеку самостоятельно обычно не составляет труда, есть библиотеки с открытым и понятным исходным кодом. Да и я сильно сомневаюсь, что в имеющихся библиотеках их действительно нет. Если эти методы, конечно, вообще есть в API в том виде, в котором они нужны вам, я подробно не копал.
Цитата Сообщение от TaPaHTuHo007 Посмотреть сообщение
Можете посмотреть, может найдете где ошибся?
Чтобы понять где ошибка, надо всего лишь взять Fiddler и сравнить свой запрос с посылаемым правильным. Ну или, как минимум, посмотреть, что в ответе. У вас, как минимум, странное какое-то начало postData, ссылке там разве место? Используйте лучше HttpClient, к нему прилагаются специальные классы для любого типа POST запроса, с ними не ошибешься. А тут забудешь где-то \n поставить и все, уже не работает. Ну а еще лучше, как я уже говорил-библиотеку, где все эти нюансы учтены и не придется часами сидеть над Fiddlerом.
1
0 / 0 / 0
Регистрация: 02.01.2016
Сообщений: 9
25.01.2016, 10:11  [ТС] 5
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 6
Цитата Сообщение от TaPaHTuHo007 Посмотреть сообщение
HttpClient использовать не могу. использую studio 2010, а там нет 4.5. а установить боле позднюю версию studio не представляется возможным. комп очень слабый и места не хватает на диске.
studio через fiddler не пропускает запрос. говорит, что ошибка безопасности. да и сравнивать мне не с чем.
Хех, с таким подходом далеко не уедешь... А какое отношение имеет fiddler к студии-понимаю слабо, у меня они вместе отлично работают и никогда проблем не создавали.
0
0 / 0 / 0
Регистрация: 02.01.2016
Сообщений: 9
25.01.2016, 10:48  [ТС] 7
Спасибо, конечно, за Ваши ответы. Но может быть Вы думаете, что я шучу?
вот ошибка возникающая при включенном fiddlere
"Базовое соединение закрыто: Не удалось установить доверительные отношения для защищенного канала SSL/TLS."
Как ее обойти я к сожалению не знаю.
А для установки нового студио мой компьютер слишком слабый. Не у всех есть средства, что бы купить мощный современный компьютер. После установки более поздней версии студио на жестком диске остается 200 мегабайт свободного пространства.
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
25.01.2016, 11:03 8
Цитата Сообщение от TaPaHTuHo007 Посмотреть сообщение
вот ошибка возникающая при включенном fiddlere
"Базовое соединение закрыто: Не удалось установить доверительные отношения для защищенного канала SSL/TLS."
С ходу не скажу в чем дело, надо гуглить. По всей видимости, с сертификатами что-то не то.

Не по теме:

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

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как преобразовать список списков в простой список в Python
bytestream 22.01.2025
При работе с Python разработчики часто сталкиваются с необходимостью обработки сложных структур данных, среди которых особое место занимают вложенные списки. Эти структуры представляют собой списки,. . .
Что такое GUID / UUID и как их создать
bytestream 22.01.2025
В мире разработки программного обеспечения существует постоянная потребность в уникальной идентификации объектов, записей и ресурсов. Эта задача становится особенно актуальной в распределенных. . .
Как добавить пустую директорию в репозиторий Git
bytestream 22.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо сохранить пустую директорию в репозитории. Данная задача может показаться простой на первый. . .
Как валидировать адрес email в JavaScript
bytestream 22.01.2025
JavaScript, как основной язык веб-разработки, предоставляет разработчикам множество инструментов для реализации эффективной валидации email-адресов. От простых встроенных решений до сложных. . .
Как заменить все вхождения подстроки в JavaScript
bytestream 22.01.2025
Строки в JavaScript представляют собой неизменяемые последовательности символов, что делает их обработку особенно интересной с точки зрения оптимизации и выбора правильного подхода к решению задач. . . .
Управление версиями пакетов в Node.js. В чем разница между тильдой (~) и кареткой (^) в package.json
bytestream 22.01.2025
В современной разработке программного обеспечения управление версиями пакетов играет ключевую роль в обеспечении стабильности и надежности проектов. Node. js, как одна из самых популярных платформ для. . .
Аутентификация на сайте с помощью формы
bytestream 21.01.2025
В современном цифровом мире безопасная аутентификация становится краеугольным камнем защиты веб-приложений и пользовательских данных. Каждый день миллионы людей используют различные онлайн-сервисы,. . .
Как получить индекс в цикле for в Python
bytestream 21.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только получить доступ к элементам последовательности, но и знать их позицию в процессе итерации. Индексация в циклах. . .
Как определить адрес, из которого локальный репозиторий Git был клонирован
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса. При работе с Git разработчики часто сталкиваются с необходимостью. . .
Какая разница между операторами == и === в сравнениях в JavaScript
bytestream 21.01.2025
В мире веб-разработки JavaScript занимает особое место как динамический язык программирования, предоставляющий разработчикам широкий набор инструментов для создания интерактивных веб-приложений. . . .
Из чего и как собрать свой домашний кинотеатр
bt_guru 21.01.2025
Создание домашнего кинотеатра: от идеи до реализации В современном мире домашний кинотеатр стал неотъемлемой частью комфортного жилого пространства, предоставляя возможность наслаждаться. . .
Ошибки стиральных машин
bt_guru 21.01.2025
Современные стиральные машины представляют собой сложные электронные устройства, оснащенные множеством датчиков и систем контроля. Они способны самостоятельно определять вес загруженного белья,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru