如何从 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 服务?的主要内容,如果未能解决你的问题,请参考以下文章
从 Android 向 .net Restful WebService 发送参数
如何通过 JSON 请求从 fiddler 调用 wcf restful 服务?
调用 Restful Web 服务和更新数据库表的 PL/SQL 过程