我想在正确处理cookie的同时向远程服务器发出http请求(例如,存储服务器发送的cookie,并在我发出后续请求时发送这些cookie).保留任何和所有cookie都很好,但实际上我唯一关心的是会话cookie.
使用java.net,似乎首选的方法是使用java.net.CookieHandler(抽象基类)和java.net.CookieManager(具体实现).Android有java.net.CookieHandler,但它似乎没有java.net.CookieManager.
我可以通过检查http标头手动编写所有代码,但似乎必须有一个更简单的方法.
在保留cookie的同时在Android上发出http请求的正确方法是什么?
我有一个服务器,它向我的Android应用程序发送一个会话cookie,用于认证通信.我正在尝试使用指向同一服务器的URL加载WebView,并且我正在尝试传递会话cookie以进行身份验证.我观察到它间歇性地工作,但我不知道为什么.我使用相同的会话cookie在我的服务器上进行其他调用,这些调用永远不会失败.我只是在尝试在WebView中加载URL时才发现此问题,并且每次都不会发生这种情况.很沮丧.
下面是我用来执行此操作的代码.任何帮助将不胜感激.
String myUrl = ""http://mydomain.com/";
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
Cookie sessionCookie = getCookie();
if(sessionCookie != null){
String cookieString = sessionCookie.getName() +"="+sessionCookie.getValue()+"; domain="+sessionCookie.getDomain();
cookieManager.setCookie(myUrl, cookieString);
CookieSyncManager.getInstance().sync();
}
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new MyWebViewClient());
webView.loadUrl(myUrl);
Run Code Online (Sandbox Code Playgroud) 我对在移动应用中进行用户身份验证的最佳方式感兴趣.目前设置非常简单.我在应用程序上存储用户名和密码,并在每次需要运行受限查询时将其发送到api.
我觉得这可能是错误的方法.
当用户登录然后存储该用户的ID时,更好的方法是发送用户名和密码吗?这个问题是api接受用户ID而不是用户名和密码.用户ID将更容易"猜测",恶意用户可以通过随机选择的用户ID在其帐户下执行操作向api提交请求.我有一个api密钥.这足够安全吗?
问题是我想开始将twitter和facebook oauth整合到应用程序中.我没有读太多关于它的内容,但我认为你得到了一个"令牌".如何使用您建议的设置?在我自己的用户数据库中创建令牌并使用令牌(无论是我的,Facebook还是推特)作为授权会有好处吗?或者将每项服务分开并单独处理它们是否有意义?
谢谢.