Отправить фото POST запросом

Fdrhtj

Client
Регистрация
13.04.2020
Сообщения
12
Благодарностей
3
Баллы
3
Доброго времени суток! Нужна помощь. Снифнул запрос на создание поста, пост создается, но не крепится картинка/видео. Сервер отвечает ОК, но картинка/видео в посте заменены заглушкой. Ответ сервера при попытке проиграть видео/открыть картинку, говорит испорчен файл. Подозреваю что что-то не так с кодировкой при отправке мной на сервер запроса.

Запрос из приложения, соответственно все с постом впорядке
71803

Тоже самое из зенки уже дает битую картинку и соответственно заглушку в посте. Я замучался уже( В какую сторону копать? Это же что-то с кодировкой при отправке из зенки?
 
Последнее редактирование:

xatchikzzz

Client
Регистрация
08.09.2010
Сообщения
566
Благодарностей
38
Баллы
28
картинка отправляется пост запросом и делается в такой раскадровке.. для точного определения нужен фидлер и в инспекторе посмотреть .. полностью запрос. .как он начинается и как он заканчивается . Там должна быть концовка нормальная , а так не понятно .. скинь весь код ответа
 

Fdrhtj

Client
Регистрация
13.04.2020
Сообщения
12
Благодарностей
3
Баллы
3
POST-запрос из фидлера на формирование поста

7180471809

POST-запрос для отправки картинки на сервер с ответом

718067180871807
 

xatchikzzz

Client
Регистрация
08.09.2010
Сообщения
566
Благодарностей
38
Баллы
28
покажу полную вкладку SyntaxView
 

Fdrhtj

Client
Регистрация
13.04.2020
Сообщения
12
Благодарностей
3
Баллы
3

Fdrhtj

Client
Регистрация
13.04.2020
Сообщения
12
Благодарностей
3
Баллы
3
Итак постман отправляет успешно, через бинари
71823

Теперь вопрос как сделать тоже самое через зенку? Поиск внятных результатов не дал. Пишут что можно просто подставить полный путь до файла в тело POST экшена, но у меня ничего не вышло. Вроде как POST экшен может переводить автоматом файл в бинарный формат
 

devffy

Client
Регистрация
16.03.2019
Сообщения
541
Благодарностей
188
Баллы
43
Без самого сайта сложно че сделать:-)
 

Fdrhtj

Client
Регистрация
13.04.2020
Сообщения
12
Благодарностей
3
Баллы
3

alex8020

Client
Регистрация
16.08.2016
Сообщения
37
Благодарностей
39
Баллы
18
Покажи сначала свой POST запрос
 

Fdrhtj

Client
Регистрация
13.04.2020
Сообщения
12
Благодарностей
3
Баллы
3
Покажи сначала свой POST запрос
Вот такой запрос, без некоторых параметров разумеется)

HTTP:
POST ... HTTP/1.1
...
Content-Type: image/*
Content-Length: 134234
Host:
Connection: Keep-Alive
Accept-Encoding: gzip
User-Agent: okhttp/4.3.0

#бинарный код файла#
 

alex8020

Client
Регистрация
16.08.2016
Сообщения
37
Благодарностей
39
Баллы
18
Что в кубике POST запроса или в C# коде?
Какой запрос с какими параметрами отправляешь?
 

Solus

Client
Регистрация
14.04.2014
Сообщения
377
Благодарностей
119
Баллы
43
без некоторых параметров разумеется
Тогда будет ответ без ответа, разумеется.

Всё что вы показываете, вы ничего не показываете.
"Content-Type: image" ....и все остальное - это само собой разумеющиеся параметры по умолчанию.
Без ссылки post запроса (или хотя бы сайта) - это похоже на: "У меня есть что-то. А что, я вам не покажу".
 

Fdrhtj

Client
Регистрация
13.04.2020
Сообщения
12
Благодарностей
3
Баллы
3
Проблема решена) Дело было в кодировке. Может кому будет полезно:
- кодировка ASCII
- через C#, в зенке для этого все есть - ZennoPoster.HTTP , там же и пример
- еще пример https://zennolab.com/discussion/threads/zagruzka-fajla-post.13421/
- мой пример, корявый конечно:D и тааак сойдет

C#:
var bytes = new byte[0];

using (var ms = new MemoryStream())
{
    using(var bw = new BinaryWriter(ms, Encoding.ASCII, false))
    {
        bw.Write(File.ReadAllBytes(project.Path+"cat.jpg"));      
    }
    bytes = ms.ToArray();
}
           
string postSite = ZennoPoster.HTTP.Request(
    InterfacesLibrary.Enums.Http.HttpMethod.POST,
    @"https://test.ru/api/v1/attach",
    content: bytes,
    contentPostingType: "image/*"+boundary,
    proxy: "",
    respType: ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
    Timeout: 30000,
    UserAgent: project.Profile.UserAgent,
    UseRedirect: true,
    MaxRedirectCount: 5,
    AdditionalHeaders: new string[] {
                                    "param1: 1234567890",
                                    "Content-Type: image/jpeg",
                                    "param2: 1234567890",
                                    "param3: 1234567890",
                                    "param4: 1234567890",
                                    "param5: 1234567890"
                                    }
);
           
return postSite;

P.S. Не хорошо клянчить исток:D
 
Последнее редактирование:
  • Спасибо
Реакции: MaximTurbo и dobrohod

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)