我已成功向在我們的一臺服務器上運行的 Web 服務發布了 http 請求。請注意,我沒有編寫 Web 服務,也無法訪問源代碼。工作代碼:resp, err := http.Post("http://xxx.xxx.xx.xxx:8080/webservice/", "c:\\xml\\test.xml", nil)我現在不需要使用 xml 文件,而是需要從值列表構建 xml。我已經編寫了一個函數來執行此操作,它基本上將 xml 拼湊在字符串生成器中。我的輸出字符串看起來是正確的。我不確定的是如何發布 xml,因為 post 函數似乎采用文件路徑而不是字符串?另外,將其構建為字符串是正確的方法還是我應該以不同的方式處理它?
1 回答

慕娘9325324
TA貢獻1783條經驗 獲得超4個贊
我不確定你在哪里拍的
resp,?err?:=?http.Post("http://xxx.xxx.xx.xxx:8080/webservice/",?"c:\\xml\\test.xml",?nil)
從。文檔說的簽名net/http.Post
是
func?Post(url,?contentType?string,?body?io.Reader)?(resp?*Response,?err?error)
即第二個參數是要發送的有效負載的內容類型,第三個參數是讀取要發送的數據的源。
因此,如果您有一個包含 XML 數據的字符串(使用字符串操作構建 XML 文檔幾乎總是錯誤的做法,但現在我們不要離題),您可以通過調用您的字符串來從中讀取數據io.Reader
。?strings.NewReader()
所以這個電話會變成
resp,?err?:=?http.Post("http://xxx.xxx.xx.xxx:8080/webservice/",?"application/xml",?strings.NewReader(yourStringWithXML))
- 1 回答
- 0 關注
- 174 瀏覽
添加回答
舉報
0/150
提交
取消