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

慕娘9325324
TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
我不確定你在哪里拍的
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)
即第二個(gè)參數(shù)是要發(fā)送的有效負(fù)載的內(nèi)容類型,第三個(gè)參數(shù)是讀取要發(fā)送的數(shù)據(jù)的源。
因此,如果您有一個(gè)包含 XML 數(shù)據(jù)的字符串(使用字符串操作構(gòu)建 XML 文檔幾乎總是錯(cuò)誤的做法,但現(xiàn)在我們不要離題),您可以通過調(diào)用您的字符串來從中讀取數(shù)據(jù)io.Reader
。?strings.NewReader()
所以這個(gè)電話會(huì)變成
resp,?err?:=?http.Post("http://xxx.xxx.xx.xxx:8080/webservice/",?"application/xml",?strings.NewReader(yourStringWithXML))
- 1 回答
- 0 關(guān)注
- 172 瀏覽
添加回答
舉報(bào)
0/150
提交
取消