最近在模擬登錄的時候愈發的出現登錄失敗的情況,原因是:微信公眾平臺登錄如果時不時的會對一些異常帳號要求輸入驗證碼才可以登錄.
這個時候平臺首頁的登錄邏輯就會經常出現無法登錄的狀態,前幾天寫了一個抓取驗證碼要求用戶輸入,這個么有做多少代碼的調整,主要是讓前端寫了一寫js直接調用微信公眾平臺的驗證碼連接了,發現不行,兩個方面:
1、imgcode這個表單名打錯了
2、在抓包的時候突然發現獲取驗證碼的連接有設置cookie的
發現問題后這些都不是什么大事了,碼碼代碼松松解決:
- public function getImgCode($username){
- $str = $this -> getcurl()-> get("https://mp.weixin.qq.com/cgi-bin/verifycode?username=".$username."&r=".time())->execute();
- header('Content-Type:image/jpeg');
- echo $str;//開源代碼Vevb.com
- }
先用curl來請求驗證碼,順便將cookie保存下來,當然這里我對curl進行了簡單的封裝,然后直接將輸出抓取到內容,輸出header頭.
PS:這里遇到一個問題,其實也不算什么問題,可能會經常注意不到,在測試的時候發現有一個warning錯誤,提示頭已經發送,我就很郁悶了.
直接在代碼中輸出呢,為什么會出現這個呢,文件也是utf-8無bom頭的格式,往下一拉才發現當前這個類庫中有寫 ?> 這個東西,后邊正好有一個空行.
其實把重點不在這里,因為就算這個文件的末尾有空行也不會提示頭已經發送啊,直接分析到curl類文件中,OK,果然這個文件中又寫了 ?>.
新聞熱點
疑難解答