...

Source file src/github.com/playwright-community/playwright-go/network.go

Documentation: github.com/playwright-community/playwright-go

     1  package playwright
     2  
     3  import (
     4  	"strings"
     5  )
     6  
     7  type NameValue struct {
     8  	Name  string
     9  	Value string
    10  }
    11  type HeadersArray []NameValue
    12  type rawHeaders struct {
    13  	headersArray HeadersArray
    14  	headersMap   map[string][]string
    15  }
    16  
    17  func (r *rawHeaders) Get(name string) string {
    18  	values := r.GetAll(name)
    19  	if len(values) == 0 {
    20  		return ""
    21  	}
    22  	sep := ", "
    23  	if strings.ToLower(name) == "set-cookie" {
    24  		sep = "\n"
    25  	}
    26  	return strings.Join(values, sep)
    27  }
    28  func (r *rawHeaders) GetAll(name string) []string {
    29  	name = strings.ToLower(name)
    30  	if _, ok := r.headersMap[name]; !ok {
    31  		return []string{}
    32  	}
    33  	return r.headersMap[name]
    34  }
    35  func (r *rawHeaders) Headers() map[string]string {
    36  	out := make(map[string]string)
    37  	for key := range r.headersMap {
    38  		out[key] = r.Get(key)
    39  	}
    40  	return out
    41  }
    42  
    43  func (r *rawHeaders) HeadersArray() HeadersArray {
    44  	return r.headersArray
    45  }
    46  func newRawHeaders(headers interface{}) *rawHeaders {
    47  	r := &rawHeaders{}
    48  	r.headersArray = make([]NameValue, 0)
    49  	r.headersMap = make(map[string][]string)
    50  	for _, header := range headers.([]interface{}) {
    51  		entry := header.(map[string]interface{})
    52  		name := entry["name"].(string)
    53  		value := entry["value"].(string)
    54  		r.headersArray = append(r.headersArray, NameValue{
    55  			Name:  name,
    56  			Value: value,
    57  		})
    58  		if _, ok := r.headersMap[strings.ToLower(name)]; !ok {
    59  			r.headersMap[strings.ToLower(name)] = make([]string, 0)
    60  		}
    61  		r.headersMap[strings.ToLower(name)] = append(r.headersMap[strings.ToLower(name)], value)
    62  	}
    63  	return r
    64  }
    65  

View as plain text