zoukankan      html  css  js  c++  java
  • 模拟beego登陆

    模拟beego登陆

    package main
    
    import (
    	"fmt"
    	"time"
    	"io/ioutil"
    	"net/url"
    	"net/http"
    	"net/http/cookiejar"
    )
    
    func main() {
    	now := time.Now()
    
    	var err error
    	var resp *http.Response
    	loginAddr := "http://your.web.site/home/login"
    	resp, err = http.Get(loginAddr)
    	if err != nil {
    		fmt.Printf("login failed: %s
    ", err)
    		panic(err)
    	}
    	fmt.Printf("login status=%s
    ", resp.Status)
    
    	doLoginAddr := "http://your.web.site/home/dologin"
    	jar, _ := cookiejar.New(nil)
    	doLoginUrl, _ := url.Parse(doLoginAddr)
    	jar.SetCookies(doLoginUrl, resp.Cookies())
    	client := http.Client{Jar: jar}
    	resp, err = client.PostForm(doLoginAddr, url.Values{"UserName": {"YourName"}, "UserPwd": {"YourPassword"}})
    	if err != nil {
    		fmt.Printf("dologin failed: %s
    ", err)
    		panic(err)
    	}
    	defer resp.Body.Close()
    	body,_ := ioutil.ReadAll(resp.Body)
    	fmt.Printf("dologin status=%s
    ", resp.Status)
    	fmt.Printf("dologin response body=%s
    ", string(body))
    
    	apiAddr := "http://your.web.site/path"
    	apiResp, apiErr := client.Get(apiAddr)
    	if apiErr != nil {
    		fmt.Printf("api query failed: %s
    ", apiErr)
    		panic(apiErr)
    	}
    	defer apiResp.Body.Close()
    	body,_ = ioutil.ReadAll(apiResp.Body)
    	fmt.Printf("api query status=%s
    ", apiResp.Status)
    	fmt.Printf("api query response body=%s
    ", string(body))
    
    	fmt.Printf("cost=%s
    ", time.Now().Sub(now))
    }
    

      

  • 相关阅读:
    python+opencv 运行环境搭建
    centos 安装 FLEXPART
    centos 安装npm node
    USACO4.3 Street Race【分析】
    USACO4.3 Letter Game【枚举·细节】
    结构体封装高精度 大整数BigInt
    POJ3585 Accumulation Degree【换根dp】
    换根dp特征总结
    HDU2196 Computer【换根dp】
    CF1187E Tree Painting【换根dp】
  • 原文地址:https://www.cnblogs.com/standby/p/13073592.html
Copyright © 2011-2022 走看看