init version
diff --git a/webservice.go b/webservice.go
new file mode 100644
index 0000000..83e9780
--- /dev/null
+++ b/webservice.go
@@ -0,0 +1,75 @@
+package swwebservice
+
+func dailTimeout(network, addr string) (net.Conn, error) {
+	default_timeout := time.Duration(theSession.DefaultTimeout) * time.Second
+	return net.DialTimeout(network, addr, default_timeout)
+}
+
+type WebSession struct {
+	AppId          string
+	AppSecret      string
+	BaseUrl        string
+	DefaultTimeout int
+	session_key    string
+}
+
+func (w *WebSession) DoGet(uri string, params map[string]string) (*http.Response, error) {
+	transport := http.Transport{Dial: dailTimeout}
+
+	client := http.Client{Transport: &transport}
+
+	full_url := w.BaseUrl + uri
+
+	vl := url.Values{}
+	vl.Add("app_id", w.AppId)
+	ts := w.GetTimestamp()
+	vl.Add("timestamp", ts)
+
+	if params != nil {
+		for k, v := range params {
+			vl.Add(k, v)
+		}
+	}
+	vl.Add("sign", w.Sign(ts, vl.Encode()))
+	full_url = full_url + "?" + vl.Encode()
+	return client.Get(full_url)
+}
+
+func (w *WebSession) GetTimestamp() string {
+	t := time.Now()
+	return fmt.Sprintf("%04d%02d%02d%02d%02d%02d", t.Year(), t.Month(), t.Day(),
+		t.Hour(), t.Minute(), t.Second())
+}
+
+func (w *WebSession) Sign(timestamp, query_string string) string {
+	return "122123123"
+}
+
+func (w *WebSession) DoPost(uri string, param map[string]string, json_data []byte) (*http.Response, error) {
+	transport := http.Transport{Dial: dailTimeout}
+	client := &http.Client{Transport: &transport}
+	vl := url.Values{}
+	vl.Add("app_id", w.AppId)
+	ts := w.GetTimestamp()
+	vl.Add("timestamp", ts)
+	vl.Add("sign", w.Sign(ts, vl.Encode()))
+	if param != nil {
+		for k, v := range param {
+			vl.Add(k, v)
+		}
+	}
+	if json_data != nil {
+		vl.Add("request_data", string(json_data))
+	}
+	full_url := w.BaseUrl + uri
+	log.Debugf("Url=%v", full_url)
+	r, err := client.Post(full_url, "application/x-www-form-urlencoded", bytes.NewReader([]byte(vl.Encode())))
+	if err != nil || r.StatusCode != 200 {
+		log.Errorf("Status=%v, err=%v", r, err)
+	}
+	return r, err
+}
+
+func (w *WebSession) Auth() error {
+	return nil
+}