gohttp

package module
v0.0.0-...-f484c70 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 13, 2016 License: MIT Imports: 5 Imported by: 0

README

gohttp

Golang Build Status Coverage Status Go Report Card GoDoc license

gohttp is a lightweight and elegant http network library for Go.

Usage

Get
import  "github.com/philchia/gohttp"

gohttp.Request(Get, "https://www.google.com").
           ResponseString(
               func(code int, header http.Header, body string, err error) {
                   log.Println(code)
                   log.Println(header)
                   log.Println(body)
            })
Post
import  "github.com/philchia/gohttp"

parameters := map[string]interface{}{
    "page": 1,
    "size": 20,
    }

gohttp.Request(Post, "https://www.google.com", parameters).
           ResponseString(
               func(code int, header http.Header, body string, err error) {
                   log.Println(code)
                   log.Println(header)
                   log.Println(body)
            })

Todo

  • Add header for every single reuqest
  • Error retry handler
  • Redirect handler
  • Body encode customize
  • Async response handler
  • Basic auth support
  • Mock for test

License

gohttp code published under MIT license

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RequestAdapter

func RequestAdapter(adapter func(req *http.Request) *http.Request)

RequestAdapter assign adapter to client's adapter field

Types

type Client

type Client interface {
	Request(m Method, url string, parameters ...map[string]string) Requester
	RequestAdapter(adapter func(req *http.Request) *http.Request) Client
	HandleRedirect(flag bool) Client
	Header(k, v string) Client
}

Client interface

func NewClient

func NewClient(headers ...map[string]string) Client

NewClient create a client with custom headers

type Method

type Method int8

Method represent http method

const (
	// Get represnet http GET method
	Get Method = iota
	// Post represnet http POST method
	Post
	// Put represnet http PUT method
	Put
	// Delete represnet http DELETE method
	Delete
	// Head represent http HEAD method
	Head
	// Options represent http OPTION method
	Options
	// Patch represent http PATCH method
	Patch
	// Copy represent http COPY method
	Copy
)

func (Method) String

func (m Method) String() string

String will return http method string base on the Method type

type Requester

type Requester interface {
	ResponseString(handler func(code int, header http.Header, body string, err error))
	ResponseData(handler func(code int, header http.Header, body []byte, err error))
	Response(handler func(resp Responsor))
}

Requester interface

func Request

func Request(m Method, url string, parameters ...map[string]string) Requester

Request will make a request use the shared client

type Responsor

type Responsor interface {
	StatusCode() int
	Body() []byte
	Header() http.Header
	Error() error
}

Responsor interface is the payload of response

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL