"सामग्री-प्रकार: मल्टीपार्ट/फॉर्म-डेटा" के साथ पोस्ट करना
जब "सामग्री-प्रकार:" के साथ एक POST अनुरोध भेजने का प्रयास किया जाता है मल्टीपार्ट/फॉर्म-डेटा," आपको "[301 301 स्थायी रूप से स्थानांतरित]" जैसे त्रुटि संदेश का सामना करना पड़ सकता है। यह समस्या आम तौर पर तब होती है जब आप किसी API पर बाइट पैरामीटर और स्ट्रिंग तर्क पोस्ट करने का प्रयास करते हैं।
इस त्रुटि को हल करने और मल्टीपार्ट/फॉर्म-डेटा के साथ POST अनुरोध को सफलतापूर्वक निष्पादित करने के लिए, आप अपने गो कोड को निम्नानुसार संशोधित कर सकते हैं:
func NewPostFile(url string, paramTexts map[string]interface{}, paramFile FileItem) ([]byte, error) {
// Create a multipart body buffer and writer
bodyBuf := &bytes.Buffer{}
bodyWriter := multipart.NewWriter(bodyBuf)
// Add string parameters
for k, v := range paramTexts {
bodyWriter.WriteField(k, v.(string))
}
// Add file parameter
fileWriter, err := bodyWriter.CreateFormFile(paramFile.Key, paramFile.FileName)
if err != nil {
return nil, err
}
fileWriter.Write(paramFile.Content)
// Set content type
contentType := bodyWriter.FormDataContentType()
// Close the writer
bodyWriter.Close()
resp, err := http.Post(url, contentType, bodyBuf)
if err != nil {
return nil, err
}
defer resp.Body.Close()
// Handle response status
if resp.StatusCode = 300 {
b, _ := ioutil.ReadAll(resp.Body)
return nil, fmt.Errorf("[%d %s]%s", resp.StatusCode, resp.Status, string(b))
}
// Read response data
respData, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
return respData, nil
}
// Define FileItem type to represent file parameters
type FileItem struct {
Key string // e.g. "image_content"
FileName string // e.g. "test.jpg"
Content []byte // Byte array of the file
}
यह अद्यतन कोड POST अनुरोध को सही ढंग से बनाने के लिए मल्टीपार्ट लेखक के साथ मल्टीपार्ट/फॉर्म-डेटा सामग्री प्रकार का उपयोग करता है। सफल अनुरोध करने के लिए आप अपना एपीआई यूआरएल, पैरामीटर टेक्स्ट मैप और फ़ाइल आइटम न्यूपोस्टफ़ाइल फ़ंक्शन को प्रदान कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3