package main import ( "encoding/json" "fmt" "net/http" ) // LoginRequest .NET客户端发送的登录请求结构 type LoginRequest struct { Username string `json:"username"` Password string `json:"password"` } // 网络服务 func Connect() { // 初始化用户连接 http.HandleFunc("/login", loginHander) http.HandleFunc("/servers", FrpInfo) http.ListenAndServe(":8080", nil) } // LoginResponse .NET 请求头 func loginHander(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) return } // 解析 JSON 请求 var req LoginRequest err := json.NewDecoder(r.Body).Decode(&req) if err != nil { http.Error(w, "Invalid request body", http.StatusBadRequest) return } // 写入用户和密码 err = InitUser(req.Username, req.Password) if err != nil { http.Error(w, "Invalid request body", http.StatusBadRequest) return } // 返回成功响应 w.WriteHeader(http.StatusOK) fmt.Fprintf(w, "success") } // 将 Frp 信息返回到 .NET 客户端 func FrpInfo(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodGet { http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) return } // 将 Frp 信息返回到 .NET 客户端 w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(servers) }