這個(gè)圖片來(lái)自阮一峰老師的博客
https://segmentfault.com/q/10...
——————————————————————————————
第一次回復(fù)時(shí)沒(méi)看你的內(nèi)容,只回應(yīng)了標(biāo)題所以貼了個(gè)網(wǎng)址
下面正式回復(fù)
你的問(wèn)題不是cookies的問(wèn)題,我根據(jù)那篇文章改了下運(yùn)行成功了,你自己對(duì)照下
package main
import (
"fmt"
"io"
"io/ioutil"
"log"
"net/http"
"net/http/cookiejar"
"net/url"
"regexp"
"strings"
)
var cookies_lagou []*http.Cookie
const (
login_url_lagou string = "https://passport.lagou.com/login/login.html"
post_login_info_url_lagou string = "https://passport.lagou.com/login/login.json"
username_lagou string = "13330295142"
password_lagou string = "4525674692ac06e619cdb3f1b4b65b08"
)
func getToken(contents io.Reader) (string, string) {
data, _ := ioutil.ReadAll(contents)
regCode := regexp.MustCompile(`X_Anti_Forge_Code = '(.*?)';`)
if regCode == nil {
log.Fatal("解析Code出錯(cuò)...")
}
//提取關(guān)鍵信息
code := regCode.FindAllStringSubmatch(string(data), -1)[0][1]
regToken := regexp.MustCompile(`X_Anti_Forge_Token = '(.*?)';`)
if regToken == nil {
fmt.Println("MustCompile err")
}
//提取關(guān)鍵信息
token := regToken.FindAllStringSubmatch(string(data), -1)[0][1]
return token, code
}
func login_lagou() {
//獲取登陸界面的cookie
jar, _ := cookiejar.New(nil)
client := &http.Client{
Jar: jar,
}
req, _ := http.NewRequest("GET", login_url_lagou, nil)
res, _ := client.Do(req)
// for k, v := range res.Cookies() {
// fmt.Printf("%v=%v\n", k, v)
// }
token, code := getToken(res.Body)
fmt.Println(token, code)
//post數(shù)據(jù)
postValues := url.Values{}
postValues.Add("isValidate", "true")
postValues.Add("username", username_lagou)
postValues.Add("password", password_lagou)
postValues.Add("request_form_verifyCode", "")
postValues.Add("submit", "")
// body := ioutil.NopCloser(strings.NewReader(postValues.Encode())) //把form數(shù)據(jù)編下碼
// requ, _ := http.NewRequest("POST", post_login_info_url_lagou, nil)
requ, _ := http.NewRequest("POST", post_login_info_url_lagou, strings.NewReader(postValues.Encode()))
requ.Header.Set("Referer", "https://passport.lagou.com/login/login.html")
requ.Header.Set("X-Requested-With", "XMLHttpRequest")
requ.Header.Set("X-Anit-Forge-Token", token)
requ.Header.Set("X-Anit-Forge-Code", code)
requ.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:51.0) Gecko/20100101 Firefox/51.0")
requ.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
//for _, v := range res.Cookies() {
// requ.AddCookie(v)
//}
res, _ = client.Do(requ)
//cookies_lagou = res.Cookies()
data, _ := ioutil.ReadAll(res.Body)
res.Body.Close()
fmt.Println(string(data))
}
func main() {
login_lagou()
}
運(yùn)行結(jié)果
15f131a3-74b0-4914-bd6e-2672f36675e1 28747049
{"content":{"rows":[]},"message":"該帳號(hào)不存在或密碼(驗(yàn)證碼)誤,請(qǐng)重新輸入","state":400,"submitCode":23207051,"submitToken":"666f51d4-ccef-462a-bb56-55cb97c5231a"}
Process finished with exit code 0很多web應(yīng)用都提供了從其他的服務(wù)器上獲取數(shù)據(jù)的功能。使用用戶指定的URL,web應(yīng)用可以獲取圖片,下載文件,讀取文件內(nèi)容等。這個(gè)功能如果被惡意使用,可以利用存在缺陷的web應(yīng)用作為代理攻擊遠(yuǎn)程和本地的服務(wù)器。這種形式的攻擊稱為服務(wù)端請(qǐng)求偽造攻擊(Server-side Request Forgery)。
例如使服務(wù)器獲取本地任意文件
file:///C:/Windows/win.inifile:///etc/passwd
SSRF 可用于實(shí)現(xiàn)任意文件下載,但其可以用于更高級(jí)別的攻擊,通過(guò)判斷本地已經(jīng)安裝的服務(wù),從而實(shí)現(xiàn)針對(duì)特定服務(wù)的漏洞利用,甚至獲得完整控制權(quán)。
cell中的黑色小標(biāo)簽用collectionView展示
c的所有全局變量都在同一個(gè)命名空間中,所以全局變量名字不能重復(fù);你可以試試把函數(shù)定義為內(nèi)部的
map() / every()方法可以保證數(shù)組的不變性,而for完全取決于你寫代碼的人。sem_init函數(shù)入?yún)⑿枰獋魅虢Y(jié)構(gòu)體地址,即sem_t mutex;
sem_init(&mutex);
還有看到你buffer定義是數(shù)組指針,但感覺(jué)初始化是按照字符數(shù)組初始化的。
但是你想要的個(gè)格式不是JSON,json_encode肯定是不行的。
如果你真想要這樣的格式(不是JSON),只能自己拼接字符串了。
補(bǔ)充一下,比較接近的JSON是:
{
"data": [
{"category": "Hotel"},
{"category": "Saloon"}
]
}
$jsonData = array_map(function($c) { return ["category" => $c];}, explode(",", $r));如果等于這個(gè),程序會(huì)更慢,我覺(jué)得應(yīng)該等同于a == b || a > b才對(duì)。
That's not true. Your platform will not split >= into == and >. The implementation varies from platform to platform and compiler to compiler. From Assembly(https://godbolt.org/g/6MCvQq):
if (a >= b)
=>
mov eax, dword ptr [rbp - 12]
cmp eax, dword ptr [rbp - 16]
jl .LBB0_4
if (a > b)
=>
cmp r8d, dword ptr [rbp - 16]
mov dword ptr [rbp - 20], eax # 4-byte Spill
jle .LBB0_2
Both have 3 instructions.
Also take a look at these awesome answers: https://stackoverflow.com/que...
Both are true. || is logic or operator in some languages(which belongs to logic operators). I assume you have limited the symbols to c++(because you didn't use the more general terms like logic or and logic and. In standard ml, logic or is expressed as or, same for logic and)
In c++, please correct = to ==. The former is a Direct assignment operator, while the latter is Equal to operator. If a satisfy the condition, the b will not be used. For example:
if (a && b)
is equal to
if (a)
if(b)
...
BTW, in some algorithms, if you want to judge if a node exists (like arr[x][y] == 'x'), it should be put in b rather than a. Because sometimes a is used to filter out-of-range conditions.
dones, pendings = await asyncio.wait(tasks)
這里是要匯總所有的結(jié)果,而你task里使用的是return 相當(dāng)于等3個(gè)人做作業(yè),
要等最慢的一個(gè)交完作業(yè),當(dāng)然是4s結(jié)束之后才有了。
如果你直接在task里sleep之后print那么相當(dāng)于讓做完作業(yè)的人直接舉手,結(jié)果就不一樣了。
1.如果你的title類和list類可能出現(xiàn)復(fù)用也就是其他元素也可能用到這兩個(gè)類的情況下那肯定是分開(kāi)寫的
2.如果只是要定義list的樣式,那么一個(gè)類就夠了
unix 下兩大文本處理利器 awk sed 了解下(沒(méi)怎么研究過(guò),:)逃)
大部分編程語(yǔ)言用正則 和 邏輯判斷 也可以
如果我沒(méi)理解錯(cuò),項(xiàng)目的操作權(quán)限只和用戶的角色(即你說(shuō)的身份有關(guān))
userId和projectId的關(guān)聯(lián)表(具體可以參見(jiàn)hibernate的manytomany)自增主鍵,項(xiàng)目id,角色id,項(xiàng)目權(quán)限,其中 項(xiàng)目id+角色id是聯(lián)合唯一鍵,項(xiàng)目權(quán)限業(yè)務(wù)中可以用枚舉變量,在表中可以用數(shù)字表示題外話
其實(shí)所有設(shè)計(jì)都應(yīng)該回歸本源,即業(yè)務(wù)需求?!翰煌巧胁煌牟僮鳈?quán)限,且不同角色在不同項(xiàng)目中權(quán)限不同』,這個(gè)具體的場(chǎng)景是什么?是有一個(gè)管理員平臺(tái)供超級(jí)管理員去設(shè)置每個(gè)角色在每個(gè)項(xiàng)目中的權(quán)限么?
其實(shí)我覺(jué)得更合理的方案:用戶權(quán)限和項(xiàng)目解耦,可能只是用于系統(tǒng)的登錄和其他模塊的操作權(quán)限。項(xiàng)目權(quán)限直接通過(guò)頁(yè)面配置,且是用戶緯度的,即把第二張表中的角色id改為用戶id即可。即每個(gè)項(xiàng)目管理員都可以給用戶分配權(quán)限,所以項(xiàng)目權(quán)限在用戶緯度配置更加合理
"http_proxy=my-proxy" ==> "http_proxy\=my-proxy" 或 'http_proxy=my-proxy'
我的1.0的也是,后來(lái)直接刪了
在 webpack.base.conf.js 文件中;有個(gè) resolve 配置項(xiàng)
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
}
},
默認(rèn) @ 為 src 的根路徑
應(yīng)該是瀏覽器的鍋,為了提高速度自己先請(qǐng)求了一下,用 curl 試試
//判斷等級(jí)level等于0的時(shí)候 false不顯示刪除按鈕 true顯示
//setting設(shè)置
edit: {
enable: true,
showRemoveBtn: setRemoveBtn
}
//定義的方法
function setRemoveBtn(treeId, treeNode) {
if(treeNode.level == 0) {
return false;
}
else {
return true;
}
}
gcc -o tifftest tifftest.c –ltiff
前面的 - 和后面的 – 明顯不一樣。。
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException這個(gè)異常沒(méi)試過(guò),它的間接父類java.sql.SQLException,我試了一下是可以捕獲的。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。