
Maxim
18.12.2016
17:10:06
Я как раз сюда выполз потому что застрял немного
небольшие посиделки для тех, кому интересен мой говнокод, например:
https://www.livecoding.tv/toby3d/
Мне надо как-то в POST запрос тельце засунуть. Вроде бы JSON, судя по докам. Но не выходит нихрена.

corpix
18.12.2016
17:37:58

Google

Maxim
18.12.2016
17:39:32

corpix
18.12.2016
17:40:59
Хммм, ну тогда я бы посмотрел в дамп траффика и поискал странности. Выглядит необычно
Чтоб сдампить трафф можно использовать например https://mitmproxy.org/
Если у ресурса есть https то надо будет поставить дополнительные сертификаты http://docs.mitmproxy.org/en/stable/certinstall.html
Правда я не вижу чтобы fasthttp брал настройки прокси из окружения https://github.com/valyala/fasthttp/search?utf8=%E2%9C%93&q=_proxy&type=Code
Так что возможно придётся менять что-то в коде, либо подшаманить hosts

Maxim
18.12.2016
17:58:12
Похоже Marshal недостаточно, чтобы корректно скормить данные в реквест
Я сначала делаю структуру, заполняю её, затем делаю Marshal и уже его выхлоп пихаю в Post

corpix
18.12.2016
18:01:50
Этого должно быть достаточно
Проверь content-length на всякий случай ещё раз, из-за неправильного значения в этом поле сервер может не принимать запрос. Вроде он должен >=400 статус вернуть в этом случае
А вообще, самый действенный способ найти непонятную багу - поснифать :)

Maxim
18.12.2016
18:06:02
Блин, и что делать тогда

Kirill
18.12.2016
18:06:35
опять же, Макс, еще раз — заюзай dlog. с ним удобно дебажить, в том числе такое.

corpix
18.12.2016
18:07:21
Вообще если там именно 400 то скорее всего проблема в каком-то из полей запроса, а не в content-length. Я к сожалению не помню точно, но кажется что 400 на проблемы с content-length не отвечают

Google

Maxim
18.12.2016
18:08:15
Короче, суть в том, что если отправлять данные как аргументы, то всё ок, если отправлять те же данные как байты через Marshal, то всё ломается
Хотя в доках указано, что логичней было бы байтами слать

corpix
18.12.2016
18:09:40
"как аргументы", это в querystring?

Maxim
18.12.2016
18:09:56

corpix
18.12.2016
18:10:15
Я хз что такое Args в fasthttp к сожалению

Maxim
18.12.2016
18:10:30
Я хз что такое Args в fasthttp к сожалению
var args fasthttp.Args
args.Add("app", app.Name)
args.Add("authToken", authToken)
args.Add("login", login)
args.Add("pass", pass)
url := APIEndpoint + "/auth/login"
code, resp, err := fasthttp.Post(nil, url, &args)

corpix
18.12.2016
18:10:47
А, похоже что это qs, да

Tsundershark
18.12.2016
18:10:58
Что за ад и Израиль? Серьезно надо одновременно querystring+JSON?

corpix
18.12.2016
18:11:14
Интересно. А кодировка в заголовках передаётся?

Maxim
18.12.2016
18:11:59
Вот где я свои PUT/DELETE/UPDATE строил там да, могу назначать параметры потоньше

Kirill
18.12.2016
18:12:50

corpix
18.12.2016
18:12:54
Эх, ну тогда истину покажет снифер

Maxim
18.12.2016
18:15:34
Заголовки вроде верные:
2016/12/18 23:14:54 POST /auth/login HTTP/1.1
User-Agent: fasthttp
Host: api.hitbox.tv
Content-Type: application/json
Content-Length: 76
Мда, теперь пашет, когда Я с коробочного Post на самописный перешел
Песец, конечно.

corpix
18.12.2016
18:17:56
Забавно. Как выглядит самописный?

Maxim
18.12.2016
18:18:19
И снова про fasthttp - явных ошибок нет, но может я что неправильно прописал?
func delete(dst []byte, url string, args *fasthttp.Args) ([]byte, error) {
var req fasthttp.Request
req.Header.SetMethod("DELETE")
req.SetRequestURI(url)
if dst != nil {
req.SetBody(dst)
}
if args != nil {
args.WriteTo(req.BodyWriter())
}
var resp fasthttp.Response
err := fasthttp.Do(&req, &resp)
if err != nil {
return nil, err
}
return resp.Body(), nil
}


corpix
18.12.2016
18:24:16
Лол
https://github.com/valyala/fasthttp/blob/1c39678a4dd0122de1b9a7e14e49b3e99b7d60b9/client.go#L136-L140
https://github.com/valyala/fasthttp/blob/1c39678a4dd0122de1b9a7e14e49b3e99b7d60b9/client.go#L280
https://github.com/valyala/fasthttp/blob/1c39678a4dd0122de1b9a7e14e49b3e99b7d60b9/client.go#L735
https://github.com/valyala/fasthttp/blob/ec59ce31a656938f535b81ca2aa344d6ed962dbe/strings.go#L67

Google

corpix
18.12.2016
18:24:25
Не верный content-type
Т.е. он всегда application/x-www-form-urlencoded для изкоробочного Post()

Maxim
18.12.2016
18:25:56
Блин
Он был мне как брат. Как так-то?

corpix
18.12.2016
18:28:17
Дерьмо случается
Тут ещё норм вроде, не так много private'а, в отличие от http в std. Можно на библиотечных примитивах строить свои

Roman
18.12.2016
18:28:45
Я спрошу на всякий случай. До реализации программы ты в ручную запрос проверяешь каким нибудь браузерным плагином?

Kirill
18.12.2016
18:28:58

Maxim
18.12.2016
18:30:05
Если что, Я на стриме тихо матерюсь на валялу. хД

corpix
18.12.2016
18:33:07
А ещё https://github.com/pashky/restclient.el
(емаксеры поймут)

Kirill
18.12.2016
18:36:36
только все залагало

Kirill
18.12.2016
18:36:58
мата не слышно
чот отлагало даже

Sergey
18.12.2016
18:50:29
эх, словил такую ошибку https://youtrack.jetbrains.com/issue/GO-2931
придётся ждать фикса(

Valentin
18.12.2016
19:08:51
Кто нибудь уже получил доступ к тесту JetBrains Gogland?
Интересно было бы услышать как IDE

Kirill
18.12.2016
19:11:26

Valentin
18.12.2016
19:11:40
а есть dmg под мак?

Kirill
18.12.2016
19:11:50
кстати, давно об IDE не говорили. слышали о новой IDE от jetbrains?

Google

Valentin
18.12.2016
19:12:33
ок, глянем
чет не нашел(
или просмотрел
зато нашел интересную ссылку на LiveCoding Maxim Lebedev, надо глянуть
еще и с одной области смотрю оказывается

Admin
ERROR: S client not available

Kirill
18.12.2016
19:20:38

Valentin
18.12.2016
19:21:17
о, спасибо большое :)

Maxim
18.12.2016
19:21:18
Охудеть

Valentin
18.12.2016
19:21:47
:)

Maxim
18.12.2016
19:23:08

andretshurotshka?❄️кде
18.12.2016
19:23:15

Valentin
18.12.2016
19:23:19
Миасс
Частично закрытый был в СССР, кстати, Ваш город всё еще закрытый или свободный?

Maxim
18.12.2016
19:25:00

Valentin
18.12.2016
19:27:33
вот
чет не качает, а кто раздает? встаньте плиз кто нибудь минут на 10-25

Kirill
18.12.2016
19:27:56
@mr_tron магнит еще работает?

Valentin
18.12.2016
19:34:43
ссылкой бы расшарили на Яндекс.Диске или дропбоксе да и всё, торрент пришлось ставить :)

Kirill
18.12.2016
19:35:20
да не я раздавать решил же

Google

Maxim
18.12.2016
19:50:03
Сыпасиба всем кто на стрим заходил. Завтра продолжу, так что если админы не против - я перекину анонс сюда, как начну.
А вообще типа подписывайтесь на мой телеграм и стриминговые каналы, все дела. ?

Kirill
18.12.2016
19:50:48
рекламкэ
а вообще я подписался
подписывайтесь на репу, что ли: https://github.com/goodlang/good
</ads>

Valentin
18.12.2016
19:52:38

Kirill
18.12.2016
19:52:51

Valentin
18.12.2016
19:53:06
неа, я тут месяц наверно не сидел

Kirill
18.12.2016
19:53:24
тут ссыль на чятик была даже

Maxim
18.12.2016
19:56:22
Кстати, кому как ВКшечка без API для аудиозаписей?
https://soundcloud.com/nixhlestakov/rip-vk-audios

Sergey
18.12.2016
19:57:35

Kirill
18.12.2016
19:57:54