Size: a a a

2021 May 14

AS

Andrew Stishenok in Go-go!
Вот так выглядит запрос пришедший через curl

Headers:

Authorization: Basic dXNlcjpwYXNz
Content-type: multipart/form-data; boundary=------------------------a2d990deb28046a1


Body:

--------------------------a2d990deb28046a1
Content-Disposition: form-data; name="param1"

test
--------------------------a2d990deb28046a1
Content-Disposition: form-data; name="param2"

test
--------------------------a2d990deb28046a1--

Т.е. нужно отправлять данные не с Content-type application/x-www-form-urlencoded, а с multipart/form-data.

Пример:

formData := url.Values{
"param1": {"test"},
"param2": {"test"},
}

body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
for field, value := range formData {
fw, _ := writer.CreateFormField(field)
fw.Write([]byte(value[0]))
}
writer.Close()

req, _ := http.NewRequest(http.MethodPost, url, bytes.NewReader(body.Bytes()))
req.SetBasicAuth(username, password)
req.Header.Set("Content-Type", writer.FormDataContentType())
resp, err := http.DefaultClient.Do(req)
источник

A(

Andrew (backEnd) in Go-go!
Спасибо
источник

0

0xDEFACE in Go-go!
Здравствуйте, что можно использовать для удобной работы с nested set в го? Делать raw query и хранить процедуру по пересчету дерева в СУБД пока вариант на котором остановился
источник

m

milkiweed in Go-go!
всем привет! скажите плиз, а либа github.com/go-redis/redis/v8 безопасна для вызова в разных горутинах? или нужно мьютексами оборачивать
источник

с

сонная википедия... in Go-go!
https://pkg.go.dev/github.com/go-redis/redis/v8#Client
> It's safe for concurrent use by multiple goroutines.
источник

m

milkiweed in Go-go!
спасибо!
источник

ВЩ

Владимир Щёголев... in Go-go!
Здравствуйте. Используем в проекте библиотеку написанную на С/C++ и подключаем ее в го через СGO. Решили для проверки утечек памяти подключить санитайзер ASAN. В тестовом модуле добавил TestMain:

func TestMain(m *testing.M) {
res := m.Run()
runtime.GC()
runtime.GC()
doSanitizerCheck()
os.Exit(res)
}

В го проброшены С методы для чистки памяти, которые и используются.
Как можете заметить, после прогона тестов GС вызывается 2 раза. Потому что если вызвать его 1 раз, то каждый раз остаются рандомные утечки в разных местах, а может и не остаются. В общем с одним вызовом GC это работает рандомно и никак не связано. Может быть кто знает в чем может быть проблема?

Какие еще методы есть для поиска утечек памяти в подключаемом через CGO коде?
источник

н

немедленно in Go-go!
санитайзеры на го оч часто выдают ложные предупреждения. Я бы тестировал сишный код отдельно (перенеся в него всю логику)
источник

н

немедленно in Go-go!
кста вроде можно собрать сишную либу сразу с санитайзерами
источник

ВЩ

Владимир Щёголев... in Go-go!
Да,мы так и собираем. Они попадают в итоговую сборку
источник

АЛ

Алексей Леонид... in Go-go!
День добрый.
Кто то работает с фэйсбук апи ads archive?
Или м.б у кого то есть линк на группу где можно спросить по этому вопросу?
источник

DK

David Klassen in Go-go!
Что значит “удобная работа”? В принципе nested set из рсубд можно представить как дерево в памяти и работать как с деревом.
источник

AN

Alpha Nerd in Go-go!
Парни: переменные называть через camelCase или underscore_case?
источник

АГ

Алексей Гевондян... in Go-go!
для чего?
источник

AN

Alpha Nerd in Go-go!
Переменные
источник

АГ

Алексей Гевондян... in Go-go!
camelCase
источник

V

Verdant in Go-go!
В смысле для чего? В Go всегда camelCase
источник

АГ

Алексей Гевондян... in Go-go!
ну может для полей бд, я хз)
источник

AN

Alpha Nerd in Go-go!
Все вопросы сняты, спасибо!
источник

RL

Ragnar Lodbrok in Go-go!
Для файлов нет
источник