- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
std::string makeFormContent(const std::string & album,
const std::wstring & filename,
const std::string & boundary)
{
static const std::string DELIM = "\r\n";
std::ostringstream ss;
std::ifstream file(filename, std::ios::binary);
ss << boundary << DELIM;
ss << "Content-Disposition: form-data; name=\"album\"" << DELIM << DELIM;
ss << album << DELIM;
ss << boundary << DELIM;
ss << "Content-Disposition: form-data; name=\"image\"; filename=\"image\"" << DELIM << DELIM;
ss << file.rdbuf() << DELIM;
ss << boundary << DELIM << "--";
return ss.str();
}
Заебали. Куча HTTP-либ под кресты, а банально сделать POST-запрос с multipart/form-data без кучи ебли нельзя. Приходится самому составлять, лол.
Именно поэтому я за «requests.post(url, data=data, files=files)».
В то время, когда космические корабли бороздят Большой театр, когда выходят новые версии TLS с новыми протоколами шифрования и подписи, формы для отправки файлов собираются таким алхимическим способом???
Например, содержимое файла ABC. Если мы возьмём в качестве границы ABCA, то получим: Встретив второй раз ABCA, парсер решит, что это конец. А если добавим любой другой символ, то облома не будет:
Более того, вся электроника построена на вероятности. Метастабильность при передаче данных между разными частотными доменами убрать никак нельзя, можно только загнать вероятность в угол и делать вид, что всё заебись... И что один случай за миллиарды лет никто не заметит.
https://en.wikipedia.org/wiki/Range_encoding
> 150 символов
Ну вот смотри 150 символов по log2(250) бит это 1194 с лишним бита аля 149 байт (если округлить вниз). Куда плотнее то? И это на любых данных, тут не будет никаких ограничений на "нули не реже 30".
Напротив, арифметическое кодирование сбрасывает оковы битоёбства!
Зачем, к примеру, тратить на число от 0 до 5 целых три бита, если достаточно 2.59?
Долой неделимость битов!
А если не округлять, то 149 байт и целых 2 бита, в которые ты сможешь положить что-то полезное!
Даже не 2, а 2.87!
> не более 30
Но ведь запрещённых символов 6, а не 8? Поэтому из 7.96 бит мы потратим 2.58 и у нас останется 5.38 бит чтобы записать расстояние от 0 до 40!
Для этого достаточно заюзать (dist * 6) + code вместо (dist << 3) | code. Ну и ремапнуть полученное число от 0 до 245 в разрешённые символы по табличке.
Какой анскилл )))
pike
щука, пика, копье, пик, наконечник, острие
Какая обработка исключений )))
Bear -> bearer -> bearest.
Так что, питух, пожалуйста, не надо.
Покажи лучше что ты реально сам сделал.
>restc_cpp
В кресты-бусты до сих пор не завезли удобных апи с быдлерами?
Багор, как есть багор!
Забавные чудеса крестотипизации: cтоит проебать один const и оператор применяется только первый раз, но всё успешно конпелируется, ведь запятая работает со всеми типами, и я долго не мог понять в чем дело.
Тогда почему он вообще применяется, если я написал "A a", а не "const A a"?
Монадок захотелось?
static_assert(false, "Konpelyaciya upadet na etoi stroke");
static_assert(sizeof(int) == 4); // С C++17 можно пропустить сообщение об ошибке
Fluent интерфейс же.
Зато низкоуровнево.
Очевидно что высокоопитумальный код http-клиента будет завязан на конкретную Царь-машину и совершенно непортируем куда-либо ещё.
PS. Да и в целом, http — для анскилябр заедушных, не по-царски это. В нём много перепитушни анскильной.
Сначала подумал, что речь о Curve25519.
Прямо в порты же.
https://curl.haxx.se/libcurl/c/multi-post.html
Вообще странно, что в том же PHP сначала сервак полностью закачивает файл и только потом скрипт получает управление и решает, что делать с этим файлом (или вообще выбрасывает нахуй, лол).
И клиент (java.net.URLConnection) и сервлеты (https://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html).
Spring только даёт обёртки: restClient (не слишком удобный) и инъекцию этих requestов в аннотированные методы.
Впрочем всё это и разные jersey умеют.
Уметь видимо умеют, отправляют ли надо смотреть в каждом конкретном случае
- Холмс, но зачем?!
А я чего спросил, не повезло попасть на кровавый ъ-прайз, там коллега жаловался, что сервак работает именно вот так, как я выше написал. А они там гоняют достаточно толстые жисоны по несколько десятков мегабайт.