91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信開發如何獲取用戶頭像

發布時間:2021-05-22 10:46:43 來源:億速云 閱讀:408 作者:小新 欄目:web開發

小編給大家分享一下微信開發如何獲取用戶頭像,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

前段時間寫了關于微信支付接入,順便就把獲取用戶昵稱,頭像的方式也歸納下,這個其實挺簡單的,具體的方法看官方文檔即可。這里只提幾個重點。

scope參數

看過微信文檔的話,微信的規定是,對于scope參數,如果需要獲取用戶信息的話,scope參數為snsapi_userinfo。但是我接下來,使用過一次userinfo,實際上用snsapi_base也可以獲得用戶信息,一模一樣的返回值,對于獲取頭像和昵稱完全沒有任何問題

獲取頭像

獲取頭像其實有一點麻煩的就是跨域問題。要解決這個跨域問題,可以采用設置一個代理服務器,或者通過配置相關服務器(ngix,apache)來解決。這個網上方法很多,我這里說的是不通過配置服務器的方法。

在我們的項目中,我并不想使用配置一個web服務器或者代理,因為我們是游戲服務器,我們是自己實現的,并沒有使用什么web服務器框架,那么這種情況下,我們解決跨域的問題就是由我們的服務器后端直接對跨域資源發起請求,在獲得對應的資源后,再返回前端。OK,這就是具體方法

具體實現時,其實很簡單,獲取到頭像的url后,直接發起一個http請求并獲取返回即可。

注意:http請求方式為“GET”

另外需要提的一點是,對response的返回,要直接使用stream.Read,如果使用streamReader,以文本方式讀取字節流讀出來的數據是無法轉成圖片的。(我查閱過MSDN關于這兩個接口的說明,只是讀取時一個是文本形式,一個是字節流形式,其他并沒有過多的說有什么區別)。

然后記得將字節流以Base64方式轉換,交由我們的前端處理

request = HttpWebRequest.Create(url);
request.Method = "GET";
response = request.GetResponse();
stream = response.GetResponseStream();
var buffer = new byte[4096];
var num = stream.Read(buffer, 0, 4096);
var head = Convert.ToBase64String(buffer, 0, num);

stream.Dispose();
response.Close();

上面的代碼有一個問題,我后來才注意到,就是當圖片比較大的時候,比如頭像地址最后的參數是64以上,或是/0(此時返回640*640大小的圖片),這個時候,stream可能一次不能讀取完所有的數據,所以修改代碼為

var request = HttpWebRequest.Create(url);
request.Method = "GET";
var response = request.GetResponse();
var stream = response.GetResponseStream();
var buffer = new byte[response.ContentLength];
var num = stream.Read(buffer, 0, (int)response.ContentLength);
var total = num;
while(num > 0)
{
  num = stream.Read(buffer, total, (int)(response.ContentLength - total));
  total += num;
}
head = Convert.ToBase64String(buffer, 0, total);

以上是“微信開發如何獲取用戶頭像”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

繁昌县| 乌鲁木齐县| 永顺县| 临澧县| 涟源市| 上林县| 蛟河市| 龙口市| 平塘县| 鄂托克前旗| 马关县| 道真| 七台河市| 黄平县| 杭锦旗| 淮滨县| 玉林市| 湘阴县| 定南县| 麻城市| 莱州市| 南城县| 和龙市| 民权县| 霍邱县| 曲阳县| 榆社县| 措勤县| 乐安县| 永和县| 左贡县| 宁津县| 湾仔区| 长丰县| 石景山区| 礼泉县| 淮北市| 余庆县| 金山区| 沙湾县| 慈溪市|