EMQ進行HttpApi登錄問題


今天進行EMQ http api調用的時候遇到一個問題,一直彈出登錄驗證框

在官網資料中也找不到相關的接口,如下圖:

以前也經常看到這種登錄,不過我這里沒有用程序去調用過這樣類似的接口.

后來我想到經常在用迅雷下載一些電影的時候,在迅雷地址中看到過一種ftp的寫法,如: ftp:賬號:密碼@xxx.com/xyz.mp4如此如此.

我就嘗試了一下賬號密碼登錄,居然成功了.

這樣一來我百度的范圍就縮小了,找到了一個關鍵詞 -----> HTTP Authorization

原來是這玩意搞的鬼

記錄一下分享給大家.

以下內容來自網絡:https://www.cnblogs.com/forydb/p/10000301.html

c#項目中用到調用客戶接口,basic身份認證,base64格式加密(用戶名:密碼)貼上代碼以備后用

1、使用HttpClient實現basic身份認證

1 using (HttpClient client = new HttpClient())
2 {
3     client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes($"{Username}:{Password}")));
4     HttpContent httpContent = new StringContent("", Encoding.UTF8);
5     httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
6     Uri address = new Uri("接口地址");
7     var response = client.PostAsync(address, httpContent).Result.Content.ReadAsStringAsync().Result;//返回值
8 }
使用HttpClient實現basic身份認證

 

2、使用HttpWebRequest實現basic身份認證

 1 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("接口地址");
 2 request.Method = "Post";
 3 request.CookieContainer = new CookieContainer();
 4 request.ContentType = "application/json;";
 5 
 6 //(1)設置請求Credentials
 7 CredentialCache credentialCache = new CredentialCache();
 8 credentialCache.Add(new Uri("接口地址"), "Basic", new NetworkCredential("用戶名", "密碼"));
 9 request.Credentials = credentialCache;
10 
11 //(2)設置Headers Authorization
12 request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes($"{Username}:{Password}")));
13 using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
14 {
15     using (StreamReader reader = new StreamReader(response.GetResponseStream()))
16     {
17         string content = reader.ReadToEnd();
18     }
19 }
使用HttpWebRequest實現basic身份認證

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM