func HandleGenericOauthTestRequest(w http.ResponseWriter, req *http.Request, c oauth2_client.OAuth2Client, method, test_url_property, body string, useTemplate *template.Template) { props := getProperties() if req.Method == oauth2_client.POST { if err := req.ParseForm(); err != nil { w.Header().Set("Content-Type", "text/plain") w.WriteHeader(500) io.WriteString(w, "Unable to parse form:\n\n") io.WriteString(w, err.Error()) return } for k, arr := range req.Form { for _, v := range arr { props.Set(k, v) } } } for k, arr := range req.URL.Query() { for _, v := range arr { props.Set(k, v) } } c.Initialize(props) uri := props.GetAsString(test_url_property) log.Printf("Client is: %T -> %#v", c, c) var reader io.Reader = nil if len(body) > 0 { reader = bytes.NewBufferString(body) } resp, _, err := oauth2_client.AuthorizedRequest(c, method, nil, uri, nil, reader) m := make(map[string]interface{}) isError := false m["c"] = c m["url"] = uri if err != nil { m["output"] = err.Error() isError = true } else { b, err := httputil.DumpResponse(resp, true) if err != nil { m["output"] = err.Error() isError = true } else { m["output"] = string(b) } } if isError { w.Header().Set("Content-Type", "text/plain") w.WriteHeader(500) } else { w.Header().Set("Content-Type", "text/html") w.WriteHeader(200) } err = useTemplate.Execute(w, m) if err != nil { oauth2_client.LogErrorf("Error: %T %v", err, err) } }