func()

in lib/http.go [789:818]


func (l httpLib) doRequest(arg ref.Val) ref.Val {
	request, ok := arg.(traits.Mapper)
	if !ok {
		return types.ValOrErr(request, "no such overload for do_request")
	}
	reqm, err := request.ConvertToNative(reflectMapStringAnyType)
	if err != nil {
		return types.NewErr("%s", err)
	}
	req, err := mapToReq(reqm.(map[string]interface{}))
	if err != nil {
		return types.NewErr("%s", err)
	}
	// Recover the context lost during serialisation to JSON.
	req = req.WithContext(l.ctx)
	err = l.options.Limiter.Wait(l.ctx)
	if err != nil {
		return types.NewErr("%s", err)
	}
	addHeaders(req, l.options.Headers)
	resp, err := l.client.Do(req)
	if err != nil {
		return types.NewErr("%s", err)
	}
	respm, err := respToMap(resp, l.options.MaxBodySize)
	if err != nil {
		return types.NewErr("%s", err)
	}
	return types.DefaultTypeAdapter.NativeToValue(respm)
}