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))
    }
    

      

  • 相关阅读:
    C# Renci.SshNet SFTP--FTP 操作help
    点评js异步加载的4种方式
    C# csv 操作类
    Redis分布式缓存
    webApi FileReader
    Web API 2 authentication with JWT
    Web SQL
    jQuery图像照片剪裁插件Jcrop中文演示
    使用ajax跨域withCredentials的作用
    JavaScript 判断浏览器类型及版本
  • 原文地址:https://www.cnblogs.com/standby/p/13073592.html
Copyright © 2011-2022 走看看