Go POST WebService代码

//可能有多余的导入包
import (
	"bufio"
	"bytes"
	"fmt"
	"io/ioutil"
	"net/http"
	"os"
	"regexp"
	"strconv"
	"strings"
)
//POST到webService
func PostWebService(url string, method string, value string) string {
	res, err := http.Post(url, "text/xml; charset=utf-8", bytes.NewBuffer([]byte(value)))
	//这里随便传递了点东西
	if err != nil {
		fmt.Println("post error", err)
	}
	data, err := ioutil.ReadAll(res.Body)
	//取出主体的内容
	if err != nil {
		fmt.Println("read error", err)
	}
	res.Body.Close()
	fmt.Printf("result----%s", data)
	return ByteToString(data)
}

下面的是构成soap结构

func CreateSOAPXml(nameSpace string, methodName string, valueStr string) string {
	soapBody := "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
	soapBody += "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"
	soapBody += "<soap12:Body>"
	soapBody += "<" + methodName + " xmlns=\"" + nameSpace + "\">"
	//以下是具体参数
       soapBody += "<Data>" + valueStr + "</Data>"
	soapBody += "</" + methodName + "></soap12:Body></soap12:Envelope>"
	return soapBody

以下是调用

postStr := CreateSOAPXml("http://tempuri.org/", "HelloWorld","FK")
PostWebService("http://localhost:27329/WS.asmx", "HelloWorld", postStr)

你可能感兴趣的:(webservice,post,Go)