Apabila menggunakan rangka kerja Go, masalah biasa dan penyelesaiannya termasuk: Dapatkan badan permintaan HTTP: gunakan fungsi ioutil.ReadAll(r.Body). Tetapkan pengepala HTTP: Gunakan fungsi w.Header().Set("Content-Type", "application/json"). Ubah hala ke URL lain: Gunakan fungsi http.Redirect(w, r, "https://example.com", http.StatusTemporaryRedirect). Menghuraikan permintaan JSON: gunakan fungsi json.NewDecoder(r.Body).Decode(&data). Hasilkan respons JSON: Gunakan fungsi json.NewEncoder(w).Encode(data).
Soalan Lazim dalam kod sumber rangka kerja Go
Apabila menggunakan rangka kerja Go, anda mungkin menghadapi beberapa masalah biasa. Artikel ini menerangkan isu ini dan cara menyelesaikannya.
1. Bagaimana untuk mendapatkan kandungan permintaan HTTP
func HandleRequest(w http.ResponseWriter, r *http.Request) { // 获取请求的正文 body, err := ioutil.ReadAll(r.Body) if err != nil { http.Error(w, "Could not read request body", http.StatusBadRequest) return } // 处理请求... }
2. Bagaimana untuk menetapkan tajuk HTTP
func HandleRequest(w http.ResponseWriter, r *http.Request) { // 设置 HTTP 标头 w.Header().Set("Content-Type", "application/json") // 处理请求... }
3 Permintaan JSON
func HandleRequest(w http.ResponseWriter, r *http.Request) { // 重定向到另一个 URL http.Redirect(w, r, "https://example.com", http.StatusTemporaryRedirect) // 处理请求... }
5. Cara menjana respons JSON
func HandleRequest(w http.ResponseWriter, r *http.Request) { // 解析 JSON 请求正文 var data map[string]interface{} if err := json.NewDecoder(r.Body).Decode(&data); err != nil { http.Error(w, "Could not decode JSON request", http.StatusBadRequest) return } // 处理请求... }
Kes praktikal
Berikut ialah kes praktikal untuk menyelesaikan masalah biasa menggunakan pengendali HTTP dalam rangka kerja Go:Anda menggunakan kod ini boleh membuat Pengendali HTTP Go yang menerima permintaan JSON, mendapatkan medan "nama" daripada permintaan dan menjana respons JSON yang mengandungi mesej ucapan.
Atas ialah kandungan terperinci Jawapan kepada soalan lazim yang ditemui dalam kod sumber rangka kerja golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!