我已成功向在我们的一台服务器上运行的 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 关注
- 133 浏览
添加回答
举报
0/150
提交
取消