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

  • Автор темы Автор темы Fdrhtj
  • Дата начала Дата начала

Fdrhtj

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

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

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

7180471809

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

718067180871807
 
покажу полную вкладку SyntaxView
 
Итак постман отправляет успешно, через бинари
71823

Теперь вопрос как сделать тоже самое через зенку? Поиск внятных результатов не дал. Пишут что можно просто подставить полный путь до файла в тело POST экшена, но у меня ничего не вышло. Вроде как POST экшен может переводить автоматом файл в бинарный формат
 
Без самого сайта сложно че сделать:-)
 
Покажи сначала свой POST запрос
 
Покажи сначала свой 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

#бинарный код файла#
 
Что в кубике POST запроса или в C# коде?
Какой запрос с какими параметрами отправляешь?
 
без некоторых параметров разумеется
Тогда будет ответ без ответа, разумеется.

Всё что вы показываете, вы ничего не показываете.
"Content-Type: image" ....и все остальное - это само собой разумеющиеся параметры по умолчанию.
Без ссылки post запроса (или хотя бы сайта) - это похоже на: "У меня есть что-то. А что, я вам не покажу".
 
Проблема решена) Дело было в кодировке. Может кому будет полезно:
- кодировка 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)