[enh] UI non-blocking request ++ reduce default timeout

pull/2/head
Adam Tauber 8 years ago
parent 6b37e98403
commit 7b6d5eeaea

@ -12,11 +12,14 @@ import (
"regexp"
"sort"
"strings"
"time"
"github.com/jroimartin/gocui"
)
var CLIENT *http.Client = &http.Client{}
var CLIENT *http.Client = &http.Client{
Timeout: time.Duration(5 * time.Second),
}
var TRANSPORT *http.Transport = &http.Transport{}
var VIEWS []string = []string{
@ -178,17 +181,18 @@ func (a *App) SubmitRequest(g *gocui.Gui, _ *gocui.View) error {
vrh.Clear()
popup(g, "Sending request..")
go g.Execute(func(g *gocui.Gui) error {
go func(g *gocui.Gui) error {
defer g.DeleteView("popup")
// get views
vrb, _ := g.View("response-body")
vrh, _ := g.View("response-headers")
// parse url
base_url := getViewValue(g, "url")
u, err := url.Parse(base_url)
if err != nil {
g.Execute(func(g *gocui.Gui) error {
vrb, _ := g.View("response-body")
fmt.Fprintf(vrb, "URL parse error: %v", err)
return nil
})
return nil
}
u.RawQuery = strings.Replace(getViewValue(g, "get"), "\n", "&", -1)
@ -204,8 +208,12 @@ func (a *App) SubmitRequest(g *gocui.Gui, _ *gocui.View) error {
// create request
req, err := http.NewRequest(method, u.String(), data)
if err != nil {
g.Execute(func(g *gocui.Gui) error {
vrb, _ := g.View("response-body")
fmt.Fprintf(vrb, "Request error: %v", err)
return nil
})
return nil
}
// set headers
@ -222,8 +230,12 @@ func (a *App) SubmitRequest(g *gocui.Gui, _ *gocui.View) error {
// do request
response, err := CLIENT.Do(req)
if err != nil {
g.Execute(func(g *gocui.Gui) error {
vrb, _ := g.View("response-body")
fmt.Fprintf(vrb, "Response error: %v", err)
return nil
})
return nil
}
defer response.Body.Close()
@ -234,6 +246,9 @@ func (a *App) SubmitRequest(g *gocui.Gui, _ *gocui.View) error {
a.rawResponseBody = bodyBytes
}
g.Execute(func(g *gocui.Gui) error {
vrh, _ := g.View("response-headers")
a.PrintBody(g)
// print status code and sorted headers
@ -257,6 +272,8 @@ func (a *App) SubmitRequest(g *gocui.Gui, _ *gocui.View) error {
}
return nil
})
return nil
}(g)
return nil
}

Loading…
Cancel
Save