Android - 基本身份验证的HTTP请求

fur*_*s12 3 android

所以基本上我需要我的Android应用程序使用URL"http:// username:password@0.0.0.0"即基本身份验证连接到Web服务.显然,在允许访问之前,Web应用程序会检查用户名和密码,否则不允许请求.

我的问题是我尝试的所有方法总是说未经授权(响应代码401),无论我用来尝试连接到url的类和方法的组合.

有问题的网络应用程序旨在返回只有un/pw清除的东西,否则它什么都不返回,web应用程序和un/pw等都被检查和清除.

那么有没有人没有正确的方式将请求发送到这样的网址并使其正常工作?

android api8顺便说一句

更新 原来我的问题是由于使用NTLM Windows身份验证的Web应用程序,androids/apache http库不直接支持,现在调查适当的解决方法

Ric*_*ich 8

这里有一些代码形成了我的一个非常古老的项目.我使用基本身份验证来进行某些Web服务,这在当时有效.我不确定自那时起是否有更新的api(这是Android 1.6),但它仍然可以工作.

        HttpGet request = new HttpGet();
        request.setURI(new URI(url));

            UsernamePasswordCredentials credentials =
                new UsernamePasswordCredentials(authUser, authPass);
            BasicScheme scheme = new BasicScheme();
            Header authorizationHeader = scheme.authenticate(credentials, request);
            request.addHeader(authorizationHeader);
Run Code Online (Sandbox Code Playgroud)

基本上,Basic HTTP auth是用户和密码的简单哈希.浏览器允许您将这些值填充到URL中,但实际上它会将基本身份验证标头添加到您的请求中.