在本文中,我们将为您详细介绍http–如何在Flutter移动应用程序的API调用中传递基本身份验证凭据?的相关知识,并且为您解答关于flutter调用接口的疑问,此外,我们还会提供一些关于Andro
在本文中,我们将为您详细介绍http – 如何在Flutter移动应用程序的API调用中传递基本身份验证凭据?的相关知识,并且为您解答关于flutter调用接口的疑问,此外,我们还会提供一些关于Android WebView清除基本身份验证凭据、Angular 6 HTTP使用HTTP基本身份验证获取请求、Flutter Dart使用对API的基本身份验证连接到iis10的问题、Flutter 使用受基本身份验证保护的网络图像 问题的有用信息。
本文目录一览:- http – 如何在Flutter移动应用程序的API调用中传递基本身份验证凭据?(flutter调用接口)
- Android WebView清除基本身份验证凭据
- Angular 6 HTTP使用HTTP基本身份验证获取请求
- Flutter Dart使用对API的基本身份验证连接到iis10的问题
- Flutter 使用受基本身份验证保护的网络图像 问题
http – 如何在Flutter移动应用程序的API调用中传递基本身份验证凭据?(flutter调用接口)
我可以使用电子邮件和电子邮件点击Postman中的API.密码凭证,它编码电子邮件&在执行请求之前,Base64中的密码(我假设用“:”分隔).
我不知道如何在Flutter / Dart中做到这一点……
我已经修改了Http包并尝试进行Base64编码……但我只是从服务器上找回错误.
任何人都可以为基本身份验证请求提供一些指导或示例吗?
解决方法
import 'dart:convert'; import 'package:http/http.dart'; main() async { String username = 'test'; String password = '123£'; String basicAuth = 'Basic ' + base64Encode(utf8.encode('$username:$password')); print(basicAuth); Response r = await get('https://api.somewhere.io',headers: {'authorization': basicAuth}); print(r.statusCode); print(r.body); }
Android WebView清除基本身份验证凭据
>如果不退出程序,用户将无法注销
>如果用户输入凭据错误,则必须退出并重新输入程序
我尝试了很多我自己的不同实现,很多在这个网站上推荐.我在freenode上安排了#android-dev无济于事.所以这是我的最后一个选择.
这是我的WebView示例代码(我已经取出了一些东西,但主要代码基本相同):
wv = new WebView(getBaseContext()); wv.setWebViewClient(new WebViewClient() { boolean error = false; int count = 0; int checked = 0; @Override public void onReceivedHttpAuthRequest(WebView view,HttpAuthHandler handler,String host,String realm) { count++; if (count >= 3) { Toast.makeText(getBaseContext(),"Login Failed. Please Try Again.",Toast.LENGTH_LONG).show(); } else { handler.proceed(getUser(),getpass()); }// end else }// end onReceivedHttpAuthRequest @Override public void onPageStarted(WebView view,String url,Bitmap favicon) { }// onPageStarted // on success switch activities @Override public void onPageFinished(WebView view,String url) { if (view.getTitle().equalsIgnoreCase("fooTitle")) { // switch activities Intent fooActivity = new Intent(getBaseContext(),fooActivity.class); startActivity(fooActivity); } else { //Failed }// end else }// end onPageFinished });// end setWebViewCleint wv.getSettings().setJavaScriptEnabled(true); wv.loadUrl(url);
只有我第一次运行它才会运行onReceivedHttpAuthRequest.如果我注销并重新登录,它将运行onPageStarted,然后使用以前的凭据onPageFinished.因此,如果我退出并输入新用户,我将重新登录原始用户.或者,如果我输入错误的用户名和密码,它将挂在OnPageStarted上.我已经尝试过使用onReceivedError和http错误,但没有任何好处.
以下是我尝试使用logout()方法实现deauth的一些代码,以及代码的其他部分.我也尝试了很多不同的变体:
wv.clearCache(true); wv.setHttpAuthUsernamePassword(host,realm,"",""); clearCacheFolder(this.getCacheDir()); clearCacheFolder(this.getExternalCacheDir()); this.getBaseContext().deleteDatabase("webview.db"); this.getBaseContext().deleteDatabase("webviewCache.db"); WebViewDatabase.getInstance(getBaseContext()).clearHttpAuthUsernamePassword(); WebViewDatabase.getInstance(getBaseContext()).clearUsernamePassword(); WebViewDatabase.getInstance(getBaseContext()).clearFormData(); WebStorage.getInstance().deleteallData(); wv.setHttpAuthUsernamePassword(host,username,password);
ClearCacheFolder引用此处发布的markjan方法:Android Webview – Completely Clear the Cache
解决方法
CookieSyncManager.createInstance(this); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.removeAllCookie();
我在VKontakte登录活动中使用此功能清除webview中保存的用户名/密码.
Angular 6 HTTP使用HTTP基本身份验证获取请求
我正在尝试使用 基本身份验证 访问URL 。
URL返回JSON数据。
如何在下面的http请求中添加用户名和密码?
private postsURL = "https://jsonExample/posts";
getPosts(): Observable<AObjects []>{
return this.http.get<AObjects[]>(this.postsURL);
}
Flutter Dart使用对API的基本身份验证连接到iis10的问题
如何解决Flutter Dart使用对API的基本身份验证连接到iis10的问题?
我可以在android上使用类似的方法,并且工作正常。
服务器:Windows 2019,iis10
Map <String,String> sendHDRS = {
"Authorization": basicAuth,"Content-Type":"application/json","Accept":"application/json","Accept-Encoding":"gzip,deflate,br"
};
http.Response r = await http.post(
Uri.decodeFull(inURL),headers: sendHDRS,body: inBody
);
E / Flutter(11967):[错误:Flutter / lib / ui / ui_dart_state.cc(166)] 未处理的异常:E / Flutter(11967):#0 IOClient.send (package:http / src / io_client.dart:62:7)E / Flutter(11967): E / Flutter(11967):#1
BaseClient._sendUnstreamed(软件包:http / src / base_client.dart:91:38) E / Flutter(11967):#2 BaseClient.post (包装:http / src / base_client.dart:32:7)E / Flutter(11967):#3
发布。 (包装:http / http.dart:70:16)E / Flutter (11967年):#4 _withClient(package:http / http.dart:166:20)E / Flutter (11967):#5帖子(package:http / http.dart:69:5)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Flutter 使用受基本身份验证保护的网络图像 问题
如何解决Flutter 使用受基本身份验证保护的网络图像 问题?
我们有一个主站点,其中包含所有用户上传的内容,通常只是个人资料图片。
所有上传的文件夹都受到 Nginx 和 basic auth 的保护。所以你需要输入用户名和密码才能访问。
问题
如何使用 Flutter cached_network_image 做到这一点?或者类似的东西。我们不想将图像物理存储在设备上。
解决方法
您可以在 httpHeaders
小部件上使用 CachedNetworkImage
属性来传递自定义身份验证标头。
CachedNetworkImage(
imageUrl: ...,imageBuilder: ...,placeholder: (context,url) => CircularProgressIndicator(),errorWidget: (context,url,error) => Icon(Icons.error),httpHeaders: {
"Authorization": "Basic $token",}
),
关于http – 如何在Flutter移动应用程序的API调用中传递基本身份验证凭据?和flutter调用接口的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Android WebView清除基本身份验证凭据、Angular 6 HTTP使用HTTP基本身份验证获取请求、Flutter Dart使用对API的基本身份验证连接到iis10的问题、Flutter 使用受基本身份验证保护的网络图像 问题的相关信息,请在本站寻找。
本文标签: