如何从android调用RESTful Web服务?

时间:2011-05-18 14:30:51

标签: android web-services httprequest httpresponse restful-authentication

我使用jersey framework和java在netbean IDE中编写了REST Web服务。对于每个请求用户需要提供用户名和密码,我知道身份验证不好。 使用curl命令,如: curl -u username:password -X PUT http://localhsot:8080/user

现在我想从android类调用REST Web服务。我应该写什么?我是android的新手。我有一个使用DefaultHttpClient和CredentialUsernameAndPassword的android类。 但是当我在eclipse中运行时,有时我会遇到运行时异常或sdk异常。

有人给我示例代码和建议吗?

感谢

1 个答案:

答案 0 :(得分:1)

您使用基本身份验证吗?如果是这样的话:用这个。

if (username != null && password != null) {
            client.getCredentialsProvider().setCredentials(
                    new AuthScope(null, -1),
                    new UsernamePasswordCredentials(username, password));
        }

或者你可以在标题中添加那些作为setHeader(“Authentication”,“Basic”+ Base64EncodedString(username,pass);

您正在使用代理身份验证。为什么呢?

这篇文章也可能有所帮助:

link

-u代表ntlm授权,所以也许也会考虑。有一些主题,它说它不支持Android或其他东西,但我相信如果你需要它,你可以解决方法。