我正在寻找一个可以用来调用基于Web的REST API的服务.
基本上我想在app init上启动服务然后我希望能够要求该服务请求URL并返回结果.与此同时,我希望能够显示进度窗口或类似的东西.
我已经创建了一个目前使用IDL的服务,我已经阅读过你只需要这个用于跨应用程序通信的地方,所以请考虑这些需求,但不确定如何在没有它的情况下进行回调.此外,当我点击post(Config.getURL("login"), values)应用程序似乎暂停一段时间(似乎很奇怪 - 认为服务背后的想法是它运行在不同的线程!)
目前我有一个带post的服务,里面有http方法,一些AIDL文件(用于双向通信),一个ServiceManager,它处理启动,停止,绑定等服务,我正在动态创建一个具有特定代码的Handler根据需要进行回调.
我不希望任何人给我一个完整的代码库来工作,但一些指针将不胜感激.
代码(大部分)已满:
public class RestfulAPIService extends Service {
final RemoteCallbackList<IRemoteServiceCallback> mCallbacks = new RemoteCallbackList<IRemoteServiceCallback>();
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
}
public IBinder onBind(Intent intent) {
return binder;
}
public void onCreate() {
super.onCreate();
}
public void onDestroy() {
super.onDestroy();
mCallbacks.kill();
}
private final IRestfulService.Stub binder = new IRestfulService.Stub() {
public void doLogin(String username, String password) {
Message msg = new Message();
Bundle data = new …Run Code Online (Sandbox Code Playgroud) 在研究一些Web服务时,我遇到了微软称之为OData的这种"新"技术.通过阅读他们在OData中的描述,我很难区分OData和REST-ful Web服务.有人可以帮我理解差异吗?
我正在构建REST API,但我遇到了一个问题.
似乎在设计REST API时接受的做法是,如果请求的资源不存在,则返回404.
但是,对我来说,这增加了不必要的模糊性.传统上,HTTP 404与错误的URI相关联.所以实际上我们说"要么你到了正确的地方,但那个特定的记录不存在,或者互联网上没有这样的位置!我真的不确定哪一个......"
考虑以下URI:
http://mywebsite/api/user/13
Run Code Online (Sandbox Code Playgroud)
如果我得到404,那是因为用户13不存在吗?或者是因为我的网址应该是:
http://mywebsite/restapi/user/13
Run Code Online (Sandbox Code Playgroud)
过去,HTTP 200 OK如果记录不存在,我只返回带有响应代码的NULL结果.它很简单,在我看来非常干净,即使它不一定是公认的做法.但是有更好的方法吗?
我使用Postman Chrome扩展程序来测试Web服务.有三种可用于数据输入的选项.我想原始是发送JSON.另外两个,form-data和x-www-form-urlencoded有什么区别?
我一直在SO,维基百科,谷歌等上阅读"网络服务",我不太明白它们是什么.什么是简单的英文定义/描述?
如果我使用PHP制作一个简单的网站,比如说,打印一个随机整数到页面......这是一个"网络服务"吗?如果没有,为什么不呢?
我不是任何安全专家,但我赞成创建REST风格的Web服务.
在创建需要使其传输的数据安全的新服务时.我们已经开始讨论哪种方法更安全 - 使用HTTPS的REST或使用WS-Security的SOAP WS.
我的印象是我们可以使用HTTPS进行所有Web服务调用,这种方法是安全的.我看待它的方式是,"如果HTTPS对银行和金融网站来说足够好,那对我来说已经足够了".同样,我不是这个领域的专家,但我认为这些人对这个问题已经相当认真,并且对HTTPS感到满意.
同事不同意并说SOAP和WS-Security是唯一的出路.
网络似乎全面都在这上面.
也许这里的社区可以权衡各自的利弊?谢谢!
我有一个Web服务,我正在尝试进行单元测试.在服务中,它从HttpContext类似物中提取了几个值,因此:
m_password = (string)HttpContext.Current.Session["CustomerId"];
m_userID = (string)HttpContext.Current.Session["CustomerUrl"];
Run Code Online (Sandbox Code Playgroud)
在单元测试中,我使用简单的工作者请求创建上下文,如下所示:
SimpleWorkerRequest request = new SimpleWorkerRequest("", "", "", null, new StringWriter());
HttpContext context = new HttpContext(request);
HttpContext.Current = context;
Run Code Online (Sandbox Code Playgroud)
但是,每当我尝试设置值时 HttpContext.Current.Session
HttpContext.Current.Session["CustomerId"] = "customer1";
HttpContext.Current.Session["CustomerUrl"] = "customer1Url";
Run Code Online (Sandbox Code Playgroud)
我得到null引用异常,表示HttpContext.Current.Session为null.
有没有办法在单元测试中初始化当前会话?
REST样式Web服务中的资源批处理操作存在哪些经过验证的设计模式?
我试图在性能和稳定性方面在理想与现实之间取得平衡.我们现在有一个API,所有操作都从列表资源(即:GET /用户)或单个实例(PUT/user/1,DELETE/user/22等)中检索.
在某些情况下,您希望更新整组对象的单个字段.向前后发送每个对象的整个表示来更新一个字段似乎非常浪费.
在RPC样式API中,您可以使用以下方法:
/mail.do?method=markAsRead&messageIds=1,2,3,4... etc.
Run Code Online (Sandbox Code Playgroud)
什么是REST等效的?或者可以偶尔妥协.它是否会破坏设计以在一些特定的操作中添加它真正提高性能等?现在所有情况下的客户端都是Web浏览器(客户端的javascript应用程序).
XML Schema和之间有什么区别WSDL?
我注意到的差异是WSDL包含XSD和WSDL我们可以声明操作,但不是XSD.那是对的吗?
web-services ×10
rest ×6
api ×2
android ×1
c# ×1
forms ×1
http ×1
httpcontext ×1
odata ×1
postman ×1
security ×1
soap ×1
terminology ×1
unit-testing ×1
wsdl ×1
xsd ×1