如何从 android 调用 RESTful Web 服务?

Posted

技术标签:

【中文标题】如何从 android 调用 RESTful Web 服务?【英文标题】:how to call RESTful web service from android? 【发布时间】:2011-08-28 03:11:34 【问题描述】:

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

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

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

谢谢

【问题讨论】:

重复? ***.com/questions/297586/… 【参考方案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 或其他东西,但我相信如果你需要它,你可以做一个解决方法。

【讨论】:

以上是关于如何从 android 调用 RESTful Web 服务?的主要内容,如果未能解决你的问题,请参考以下文章

如何从浏览器仅调用 RESTful 端点?

从 Android 向 .net Restful WebService 发送参数

如何通过 JSON 请求从 fiddler 调用 wcf restful 服务?

调用 Restful Web 服务和更新数据库表的 PL/SQL 过程

如何保护移动和 AJAX 调用的 JSON RESTful API?

如何从JSP页面调用RestFul Webservice并使用JSON对象?