WithQueryEncoder forces use of specific encoder or encoder mode when an object is converted to query string in WithQueryObject(). See documentation for QueryEncoder enum for evailable encoders. In particular, you can use it to force ajg/form encoder for structs instead of google/go-querystring, or
(encoder QueryEncoder)
| 1375 | // req.WithQueryObject(map[string]interface{}{"a": 0, "b": 0}) |
| 1376 | // // URL is now http://example.com/path?a=0&b=0 |
| 1377 | func (r *Request) WithQueryEncoder(encoder QueryEncoder) *Request { |
| 1378 | opChain := r.chain.enter("WithQueryEncoder()") |
| 1379 | defer opChain.leave() |
| 1380 | |
| 1381 | r.mu.Lock() |
| 1382 | defer r.mu.Unlock() |
| 1383 | |
| 1384 | if opChain.failed() { |
| 1385 | return r |
| 1386 | } |
| 1387 | |
| 1388 | if !r.checkOrder(opChain, "WithQueryEncoder()") { |
| 1389 | return r |
| 1390 | } |
| 1391 | |
| 1392 | r.queryEncoder = encoder |
| 1393 | |
| 1394 | return r |
| 1395 | } |
| 1396 | |
| 1397 | func selectQueryEncoder(object interface{}) QueryEncoder { |
| 1398 | value := reflect.Indirect(reflect.ValueOf(object)) |