我正在用 Go 构建一个休息 API。 我有一个 SSL 域和一个专用服务器。
域指向我的专用域并且工作正常(https://www.myweb.com)。
错误是当我向我的 API 的某些端点发出请求时,我从未从服务器获得响应。
func main() {
router := NewRouter()
handler := cors.New(cors.Options{
AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "PATCH"},
AllowCredentials: true,
AllowedOrigins: []string{"*"},
AllowedHeaders: []string{"Authorization", "Content-Type", "Access-Control-Allow-Request-Method"},
}).Handler(router)
log.Fatal(http.ListenAndServeTLS(":4433", "tls.crt", "tls.key", handler))
}
routes.go:
var routes = Routes{ Route{"Index", "GET", "/", Index}, }
func NewRouter() *mux.Router {
fmt.Println("[INFO] Loading EndPoints...")
router := mux.NewRouter().StrictSlash(true)
for _, route := range routes {
router.
Methods(route.Method).
Path(endPoint + route.Pattern).
Name(route.Name).
Handler(route.HandlerFunc).Headers()
}
fmt.Println("[INFO] EndPoints loaded successfully...")
return router
}
索引函数
func Index(w http.ResponseWriter, r *http.Request) {
fmt.Println("API IS RIGHT HERE latest")
w.WriteHeader(http.StatusOK)
w.Header().Add("Strict-Transport-Security", "max-age=63072000; includeSubDomains")
w.Write([]byte("This is an example server.\n"))
}
问题是我可以在控制台中看到“API IS RIGHT HERE latest”,但没有别的。我的意思是,响应未加载。这是 POSTMAN 消息
更新
我刚刚注意到,如果我使用链接并通过 Firefox 浏览器加入,则响应正常。但是,如果我从 POSTMAN 请求相同的 URL,则我不会得到响应。
更新 2
我刚刚从 POSTMAN 禁用了 SSL 验证,现在工作正常。但我想知道这个选项的真正含义是什么?因为我买了一个SSL证书(不是自签名的)
最佳答案
我刚刚在 Chrome 中禁用了 SSL 验证,响应有效。但我想知道为什么我必须这样做?它不是自签名证书。我买了这个。
关于rest - 去 SSL 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48554673/