Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
3 / 3 / 1
Регистрация: 02.08.2011
Сообщений: 12

VK API, IdHTTP1, http/1.1 400 bad request

02.04.2017, 19:19. Показов 2561. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь отправить файл во ВКонтакте

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Получаем сервер для загрузки изображения
String Publ = Edit2->Text;
String Token = Edit3->Text;
String Server = IdHTTP1->Get("https://api.vk.com/method/photos.getWallUploadServer?group_id="+Publ+"&v=5.63&access_token="+Token);
TJSONObject *jObj_search_0 = static_cast<TJSONObject*>(TJSONObject::ParseJSONValue(Server));
TJSONObject *jObj_search_1 = static_cast<TJSONObject*>(jObj_search_0->Get("response")->JsonValue);
TJSONArray *jArr_search_2 = static_cast<TJSONArray*>(jObj_search_1->Get("upload_url")->JsonValue);
Server =  jArr_search_2->ToString();
 
//Загружаем фото
TIdMultiPartFormDataStream *photo = new TIdMultiPartFormDataStream;
photo->AddFormField("photo", "value");
photo->AddFile("photo","1.jpg","");
String Otvet = IdHTTP1->Post(Server, photo);
RichEdit1->Text = Otvet;
Но вылетает ошибка

HTTP/1.1 400 bad request

и, соответственно, в RichEdit1 ничего не отображается.

Причем, если заменить строку

C++
1
String Otvet = IdHTTP1->Post(Server, photo);
на

C++
1
String Otvet = IdHTTP1->Post("https://pu.vk.com/c638518/upload.php?act=do_add&mid=111&aid=-14&gid=111hash=123&rhash=123&swfupload=1&api=1&wallphoto=1", photo);
т.е. указать адрес сервера, который содержится в переменной Server, проблемы не возникает.

Помогите исправить проблему.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2017, 19:19
Ответы с готовыми решениями:

IdHttp и запрос методом get выдает ошибку bad request
нужно отправить запрос на сайт смс рассылки (sms.ru) делаю следующий присваиваю значения idhttp: и отправляю запрос: ...

Ошибки Synapse (HTTP/1.1 400 Bad Request / HTTP/1.1 413 Request Entity Too Large)
Добрый день. При работе с Synapse начали возникать вот такие вот две ошибки (HTTP/1.1 400 Bad Request / HTTP/1.1 413 Request Entity Too...

Ошибка при добавлении данных HTTP Status 400 Bad Request
Добрый день! Столкнулся с новой проблемой, при добавлении данных вылезает данная ошибка. Вроде как даже до сервера данные не доходят в set....

2
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
02.04.2017, 19:49
Адрес сервера в переменной в точности совпадает с тем, что ты привел в качестве примера?
Может там не хватает "начала" вроде https:// или оно выводится без s, что в общем случае приводит к ошибке.
0
3 / 3 / 1
Регистрация: 02.08.2011
Сообщений: 12
02.04.2017, 20:48  [ТС]
Цитата Сообщение от gunslinger Посмотреть сообщение
Адрес сервера в переменной в точности совпадает с тем, что ты привел в качестве примера?
В переменную Server записывается

C++
1
"https://pu.vk.com/c638518/upload.php?act=do_add&mid=111&aid=-14&gid=111&hash=111&rhash=111&swfupload=1&api=1&wallphoto=1"
т.е. https:// имеется.

Если код исправить на:

C++
1
2
3
4
5
6
7
8
String Publ = Edit2->Text;
String Token = Edit3->Text;
String Server = IdHTTP1->Get("https://api.vk.com/method/photos.getWallUploadServer?group_id="+Publ+"&v=5.63&access_token="+Token);
TJSONObject *jObj_search_0 = static_cast<TJSONObject*>(TJSONObject::ParseJSONValue(Server));
TJSONObject *jObj_search_1 = static_cast<TJSONObject*>(jObj_search_0->Get("response")->JsonValue);
TJSONArray *jArr_search_2 = static_cast<TJSONArray*>(jObj_search_1->Get("upload_url")->JsonValue);
Server =  jArr_search_2->ToString();
RichEdit1->Text=Server;
то в RichEdit1 будет отображаться именно нужный адрес.

Добавлено через 53 минуты
Решено.
Проблема в кавычках оказалась
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.04.2017, 20:48
Помогаю со студенческими работами здесь

IdHTTP - как изменить сообщение (HTTP / 1.0 400 Bad Request) на своё?
При возникновении ошибки, IdHTTP выдаёт сообщение HTTP / 1.0 400 Bad Request, как изменить его на своё?

Request.Response ошибка 400 bad request
Добрый день! Прошу помочь с обработкой запросов в Python 2.7.11 Принимать реквест и сохранить на сервере файл из него уже...

400 Bad request
Когда пытаюсь получить инфу с сайта, получаю 400 Bad Request, что делать?? Срочно, прошу!! #pragma optimize(&quot;t&quot;,on) ...

400 Bad Request
Ребят, помогите советом, пожалуйста. я уже устала... Проблема: При попытке воспользоваться Yandex-поиском вылезает: Bad Request ...

Ошибка 400 Bad Request
Формирую вот такой запрос POST: POST index.php HTTP/1.1 Host: risris.cwahi.net Referer: http://risris.cwahi.net/index.php ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru