• 模拟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))
    }
    

      

  • 相关阅读:
    SHT20 IIC 寄存器概述
    代理技术简介
    Spring基于注解配置AOP
    Spring基于XML配置AOP
    如何在国内下载Eclipse及其插件
    Spring AOP理解
    idea个人配置记录
    使用Gradle自动创建Java项目结构
    Spring使用外部属性文件
    Web程序员开发App系列
  • 原文地址:https://www.cnblogs.com/standby/p/13073592.html
Copyright © 2020-2023  润新知