Вопрос по загрузке фото на фотохостинг imgbb.com get/post методом

Jeronimo

Client
Joined
Jan 7, 2014
Messages
239
Reaction score
204
Points
43
Всем привет. Снова столкнулся с проблемой при работе с get/post запросами.

Пытаюсь загрузить фото на фотохостинг https://imgbb.com/, но ничего не получается.

Что делаю:

1. Посылаю get запрос к сайту https://imgbb.com/ и вытаскиваю куки из запроса
2. Делаю POST запрос со следующими параметрами:

upload_2019-1-12_16-31-51.png


upload_2019-1-12_16-32-8.png


В результате запроса получаю такую ошибку:

upload_2019-1-12_16-33-31.png


Уже по всякому пробовал делать запросы, никак не могу понять в чём ошибка.

Ещё вопрос, правильно ли я понял, что параметр ------WebKitFormBoundaryHNyjcSAjxtJvmNAd можно сгенерировать любой? По крайней мере в сниффере я этот параметр не нашёл.

Всем заранее спасибо за ответы.

Шаблон прикрепляю
 

Attachments

nole

Client
Joined
Nov 19, 2010
Messages
373
Reaction score
223
Points
43
У тебя запрос не полный, как минимум после изображения должен быть закрывающий ------WebKitFormBoundaryHNyjcSAjxtJvmNAd--
Эту часть не видно в мониторе трафика, это баг, такие запросы надо смотреть в фидлере и другом сниффере
 
  • Thank you
Reactions: Jeronimo

Jeronimo

Client
Joined
Jan 7, 2014
Messages
239
Reaction score
204
Points
43
У тебя запрос не полный, как минимум после изображения должен быть закрывающий ------WebKitFormBoundaryHNyjcSAjxtJvmNAd--
Эту часть не видно в мониторе трафика, это баг, такие запросы надо смотреть в фидлере и другом сниффере
Даже с ------WebKitFormBoundaryHNyjcSAjxtJvmNAd-- не выходит.
 

nole

Client
Joined
Nov 19, 2010
Messages
373
Reaction score
223
Points
43
Даже с ------WebKitFormBoundaryHNyjcSAjxtJvmNAd-- не выходит.
посмотри в сниффере этот запрос, после изображения могут быть и другие данные, их тоже не покажет в мониторе
 

Jeronimo

Client
Joined
Jan 7, 2014
Messages
239
Reaction score
204
Points
43
посмотри в сниффере этот запрос, после изображения могут быть и другие данные, их тоже не покажет в мониторе
upload_2019-1-12_16-45-19.png
 

nole

Client
Joined
Nov 19, 2010
Messages
373
Reaction score
223
Points
43
+ тип данных у тебя неверный в запросе, сравни в оригиналом, там похоже мультипарт должен быть
 
  • Thank you
Reactions: Jeronimo

Jeronimo

Client
Joined
Jan 7, 2014
Messages
239
Reaction score
204
Points
43
А вот что отправляется через фидлер:

upload_2019-1-12_16-46-22.png
 

nole

Client
Joined
Nov 19, 2010
Messages
373
Reaction score
223
Points
43
вот Content-Type поставь такое же в поле типа данных, WebKitFormBoundaryHNyjcSAjxtJvmNAd эта часть должна быть такая же как в теле запроса
 

Jeronimo

Client
Joined
Jan 7, 2014
Messages
239
Reaction score
204
Points
43
+ тип данных у тебя неверный в запросе, сравни в оригиналом, там похоже мультипарт должен быть
Менял на мультипарт и на мультипарт дата форм. Всё равно не получается
 

nole

Client
Joined
Nov 19, 2010
Messages
373
Reaction score
223
Points
43
Это данные, которые отправляются после изображения, в charles видно все
upload_2019-1-12_16-56-54.png
 

nole

Client
Joined
Nov 19, 2010
Messages
373
Reaction score
223
Points
43
Рабочий шаблон
 

Attachments

Jeronimo

Client
Joined
Jan 7, 2014
Messages
239
Reaction score
204
Points
43
Рабочий шаблон
Благодарю. Уже получилось самостоятельно реализовать. Действительно, я в фидлере не все передаваемые данные увидел. Теперь знаю где смотреть
 

andropovleva

Client
Joined
Nov 23, 2019
Messages
586
Reaction score
46
Points
28
Рабочий шаблон
Добрый день! Как получить ссылку на это изображение что загрузилось?
 

andropovleva

Client
Joined
Nov 23, 2019
Messages
586
Reaction score
46
Points
28

BAZAg

Client
Joined
Nov 8, 2015
Messages
1,914
Reaction score
2,665
Points
113
Добрый день! Как получить ссылку на это изображение что загрузилось?
В ответе не прилетает?
98934
 
Last edited:

andropovleva

Client
Joined
Nov 23, 2019
Messages
586
Reaction score
46
Points
28
так на запросах грузит же?
 

andropovleva

Client
Joined
Nov 23, 2019
Messages
586
Reaction score
46
Points
28

andropovleva

Client
Joined
Nov 23, 2019
Messages
586
Reaction score
46
Points
28
Еще такой вопрос, когда руками загружается фото там выбирается никогда не удалять, тут же какой параметр выбирается?
 

Jurtsche

Client
Joined
Dec 4, 2015
Messages
30
Reaction score
11
Points
8
Подниму тему , тем более, что предидущий вариант загрузки не работает.
Попробовал сделать на c# , но похоже , что то делаю не так, тоже не работает . Помогите советом.
C#:
var key = project.Variables["key"].Value;
var image = project.Variables["Base64"].Value;
string data = string.Empty;
data += "--8d769bc76365cd4\n";
 resRequest = new[] {ZennoPoster.HttpPost("https://api.imgbb.com/1/upload?key=" + key + "&image=" + image +",     
    data,
    "multipart/form-data",
    "",
    "UTF-8",
    ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
    30000,
    "",
    "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0",
    true,
    5,}
    new[] {"Host: api.imgbb.com"} );
 
  • Thank you
Reactions: Sho

ivan777

Client
Joined
Dec 10, 2018
Messages
76
Reaction score
24
Points
8
заплачу за готовый шаблон
 

selectel56

Client
Joined
Dec 11, 2016
Messages
102
Reaction score
54
Points
28
заплачу за готовый шаблон
капец тему раздули, тут делов то 2 пальца об..ть) если надо напишу завтра
 
  • Thank you
Reactions: White trash

White trash

Client
Joined
Jun 8, 2014
Messages
878
Reaction score
382
Points
63
капец тему раздули, тут делов то 2 пальца об..ть) если надо напишу завтра
Было бы неплохо.
 

BAZAg

Client
Joined
Nov 8, 2015
Messages
1,914
Reaction score
2,665
Points
113
Было бы неплохо.
В GAS добавляем System.Net.Http.
110477


В директивы:
C#:
using System.Net.Http;
using System.Net.Http.Headers;
110478


В кубик пихаем код, расположенный ниже, заменяя только путь к картинке.
C#:
string path = @"C:\Users\User\Desktop\картинка.jpg"; // Путь к картинке
string url = @"https://imgbb.com";
var auth_token = Regex.Match(ZennoPoster.HttpGet(url), @"(?<=PF\.obj\.config\.auth_token="").*?(?="";)").Value;

var sBoundary = DateTime.Now.Ticks.ToString("x");
var content = new MultipartFormDataContent(sBoundary);
    content.Add(new StreamContent(File.OpenRead(path)), name: "source", fileName: Path.GetFileName(path));
    content.Add(new StringContent("file"), "type");
    content.Add(new StringContent("upload"), "action");
    content.Add(new StringContent(string.Format(@"{0}",(int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds)), "timestamp");
    content.Add(new StringContent("P6D"), "expiration");
    content.Add(new StringContent(auth_token), "auth_token");
    //string proxy = "127.0.0.1:8888";
string response = ZennoPoster.HTTP.Request(
    method: ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.POST,
    url: url+"/json",
    content: content.ReadAsByteArrayAsync().Result, 
    contentPostingType: string.Format("multipart/form-data;boundary={0}", sBoundary),
   // proxy: proxy,
    Encoding: "UTF-8",
    respType:ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
    Timeout: 30000,
    Cookies: string.Empty,
   // UserAgent: UserAgent,
    AdditionalHeaders: new string[0],
    UseOriginalUrl: true,
    throwExceptionOnError: true,
    removeDefaultHeaders: true
  );
    
project.Json.FromString(response);
return project.Json.image.url;
В результате получаем:
110481
110479


Что собственно и будет возвращать нужную картинку.

В этой строчке кода указано, чтобы картинка удалилась через 6 дней - менять при необходимости.:
content.Add(new StringContent("P6D"), "expiration");
 
Last edited:

Agent

Client
Joined
Dec 25, 2018
Messages
214
Reaction score
58
Points
28
Подскажите, а как вместо пути к картинке вписать переменную?
Вот так string path = @"project.Variables["var1"].Value"; не работает.
Компиляция кода Ошибка в действии "CS1002" "; expected". [Строка: 1; Cтолбец:
 
Last edited:

BAZAg

Client
Joined
Nov 8, 2015
Messages
1,914
Reaction score
2,665
Points
113
Подскажите, а как вместо пути к картинке вписать переменную?
Вот так должно работать:
C#:
string path = project.Variables["var1"].Value;
 
  • Thank you
Reactions: Agent

Agent

Client
Joined
Dec 25, 2018
Messages
214
Reaction score
58
Points
28
Спасибо большое! Работает.
А чтобы картинка никогда не удалялась, я так понимаю, нужно в таком виде эту строчку написать?
C#:
content.Add(new StringContent(""), "expiration");
 

BAZAg

Client
Joined
Nov 8, 2015
Messages
1,914
Reaction score
2,665
Points
113
Спасибо большое! Работает.
А чтобы картинка никогда не удалялась, я так понимаю, нужно в таком виде эту строчку написать?
C#:
content.Add(new StringContent(""), "expiration");
Возможно стоит просто закомментировать эту строчку или удалить её - когда время удаления не указывается - в запросе нет этого параметра.
 
  • Thank you
Reactions: Agent

Agent

Client
Joined
Dec 25, 2018
Messages
214
Reaction score
58
Points
28
Что-то поломалось :( Подскажите, как исправить? Вот такая ошибка:
Выполнение действия CSharp OwnCode: "ZennoLab.JXParser.JsonDynamic" не содержит определения для "image"
 

BAZAg

Client
Joined
Nov 8, 2015
Messages
1,914
Reaction score
2,665
Points
113
Что-то поломалось :( Подскажите, как исправить? Вот такая ошибка:
Выполнение действия CSharp OwnCode: "ZennoLab.JXParser.JsonDynamic" не содержит определения для "image"
Посмотрите в проджект мейкере, в окне мониторнг трафика что именно за объект присылает сайт в ответ.
Ошибка говорит что поля image в этого объекта нет (или сайт что-то изменил, или запрос не доходит например).
 

Agent

Client
Joined
Dec 25, 2018
Messages
214
Reaction score
58
Points
28
Вроде, заработало. Похоже, сбой какой-то был. Спасибо.
 
  • Thank you
Reactions: BAZAg

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)