如何将 XML 字符串发布到 Web 服务而不是 xml 文件

我已成功向在我们的一台服务器上运行的 Web 服务发布了 http 请求。

请注意,我没有编写 Web 服务,也无法访问源代码。

工作代码:

resp, err := http.Post("http://xxx.xxx.xx.xxx:8080/webservice/", "c:\\xml\\test.xml", nil)

我现在不需要使用 xml 文件,而是需要从值列表构建 xml。

我已经编写了一个函数来执行此操作,它基本上将 xml 拼凑在字符串生成器中。我的输出字符串看起来是正确的。

我不确定的是如何发布 xml,因为 post 函数似乎采用文件路径而不是字符串?

另外,将其构建为字符串是正确的方法还是我应该以不同的方式处理它?


Qyouu
浏览 134回答 1
1回答

慕娘9325324

我不确定你在哪里拍的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))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go