Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membetulkan Ralat \'Permintaan Buruk: tiada foto dalam permintaan\' Semasa Menghantar Fail ke Bot Telegram dengan Golang?
Dalam percubaan untuk menulis fungsi untuk memuat naik fail ke Telegram melalui permintaan POST, anda mengalami ralat "Permintaan Buruk: tiada foto dalam permintaan." Pendekatan awal anda menggunakan fungsi SendPostRequest terbukti tidak berjaya.
Selepas penyelidikan menyeluruh, penyelesaian yang dipertingkatkan berikut ditemui:
<code class="go">import ( "bytes" "io" "mime/multipart" "net/http" "path/filepath" ) // content is a struct which contains a file's name, its type and its data. type content struct { fname string ftype string fdata []byte } func sendPostRequest(url string, files ...content) ([]byte, error) { var ( buf = new(bytes.Buffer) w = multipart.NewWriter(buf) ) // Iterate over the files and add them as form fields for _, f := range files { part, err := w.CreateFormFile(f.ftype, filepath.Base(f.fname)) if err != nil { return []byte{}, err } _, err = part.Write(f.fdata) if err != nil { return []byte{}, err } } // Close the multipart writer err := w.Close() if err != nil { return []byte{}, err } // Create a new POST request req, err := http.NewRequest("POST", url, buf) if err != nil { return []byte{}, err } // Set the Content-Type header req.Header.Add("Content-Type", w.FormDataContentType()) // Create a new HTTP client client := &http.Client{} // Send the request res, err := client.Do(req) if err != nil { return []byte{}, err } // Close the response body defer res.Body.Close() // Read the response body cnt, err := io.ReadAll(res.Body) if err != nil { return []byte{}, err } return cnt, nil }</code>
Penyelesaian yang dikemas kini ini menggunakan borang berbilang bahagian data untuk menghantar fail, yang menyelesaikan isu dan memastikan bahawa fail itu ada dalam permintaan.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'Permintaan Buruk: tiada foto dalam permintaan\' Semasa Menghantar Fail ke Bot Telegram dengan Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!