Questions tagged «web-services»

“ Web服务”是一种软件系统,旨在支持通过互联网进行可互操作的机器到机器的交互。

5
Java REST实现:Jersey vs CXF
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 7年前关闭。 改善这个问题 您认为这两个库之间的优缺点是什么?这两个中哪一个最适合生产环境?顺便说一下,我将使用JSON而不是XML。 我也想知道社区最支持哪种库,例如教程,文档。

6
从发布请求中读取JAX-RS客户端中的响应正文
在移动应用程序和Web服务之间具有某种代理,发出发布请求时的响应使我们感到困惑。我们收到状态为200的回复:确定。但是我们找不到/提取JSON响应主体。 Client client = ClientBuilder.newClient(); WebTarget webTarget = client.target(WEBSERVICE_BASE_LOCATION + "mobileDevices?operatorCode=KPNSCP"); String jsonString = "{\"osVersion\":\"4.1\",\"apiLevel\":16,\"devicePlatform\":\"ANDROID\"}"; Builder builder = webTarget.request(); Response response = builder.post(Entity.json(jsonString)); 我们正在使用JAX-RS。有人可以提供一些提示来String从服务器响应中提取JSON正文()吗?

9
大型WCF Web服务请求失败,并显示(400)HTTP错误请求
我遇到了这个看似常见的问题,无法解决。 如果我使用数组参数中相对较少的项调用WCF Web服务(我已经测试了多达50个),那么一切都很好。 但是,如果我用500个项目调用Web服务,则会收到Bad Request错误消息。 有趣的是,我在服务器上运行了Wireshark,看来请求甚至没有到达服务器上-客户端正在生成400错误。 例外是: System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (400) Bad Request. ---> System.Net.WebException: The remote server returned an error: (400) Bad Request. system.serviceModel我的客户端配置文件的部分是: <system.serviceModel> <bindings> <wsHttpBinding> <binding name="WSHttpBinding_IMyService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> <readerQuotas maxDepth="32" …
74 c#  .net  wcf  web-services 




19
WCF服务客户端:内容类型为text / html;响应消息的charset = utf-8与绑定的内容类型不匹配
我在本地IIS服务器上运行了WCF服务。我已将其添加为对C#网站项目的服务引用,它可以很好地添加并自动生成代理类。 但是,当我尝试调用任何服务合同时,都会出现以下错误: 说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。 异常详细信息:System.ServiceModel.ProtocolException:内容类型text / html; 响应消息的charset = utf-8与绑定的内容类型不匹配(application / soap + xml; charset = utf-8)。如果使用自定义编码器,请确保正确实施IsContentTypeSupported方法。响应的前1024个字节为:'函数bredir(d,u,r,v,c){var w,h,wd,hd,bi; var b = false; var p = false; var s = [[ 300,250,false],[250,250,false],[240,400,false],[336,280,false],[180,150,false],[468,60,false],[234,60,false],[88,31, false],[120,90,false],[120,60,false],[120,240,false],[125,125,false],[728,90,false],[160,600,false],[120,600,false] ,, [300,600,false],[300,125,false],[530,300,false],[190,200,false],[470,250,false],[720,300,true],[500,350,true],[550,480,true]]; if(typeof(window.innerHeight)=='数字' 我也有一个控制台应用程序,该应用程序也可以与WCF服务进行通信,并且该控制台应用程序可以很好地调用方法而不会出现此错误。 以下是我的配置文件的摘录。 WCF服务Web.Config: <system.serviceModel> <services> <service name="ScraperService" behaviorConfiguration="ScraperServiceBehavior"> <endpoint address="" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IScraperService" contract="IScraperService" /> <endpoint address="mex" …
73 c#  .net  wcf  web-services 

7
对重新创建的活动实施Retrofit回调的最佳实践?
我将改用Retrofit,并尝试了解将其与异步回调配合使用的正确体系结构。 例如,我有一个接口: interface RESTService{ @GET("/api/getusername") void getUserName(@Query("user_id") String userId, Callback<Response> callback); } 我从主要活动中运行它: RestAdapter restAdapter = new RestAdapter.Builder() .setServer("WEBSITE_URL") .build(); RESTService api = restAdapter.create(RESTService.class); api.getUserName(userId, new Callback<Response> {...}); 然后用户旋转设备,并且我有新创建的活动...这里发生了什么?如何获得对新活动的响应(我假设在后台进行的api调用的执行时间将比第一个活动寿命长)。也许我必须使用静态的回调实例还是什么?请告诉我正确的方法...

3
确保REST API的安全而不用费吹灰之力
在设计REST API时,通常先对用户进行身份验证吗? 我正在寻找的典型用例是: 用户想要获取数据。当然,我们喜欢分享!获取公共API密钥并阅读! 用户想要存储/更新数据...等等!你是谁,你能做到吗? 我想一次构建它,并允许说一个Web应用程序,一个Android应用程序或一个iPhone应用程序来使用它。 REST API似乎是符合此类要求的合理选择 为了说明我的问题,我将使用一个简单的示例。 我在数据库中有一个项目,该项目具有等级属性(1到5的整数)。 如果我正确理解REST,则将使用我选择的返回CSV,XML或JSON的语言来实现GET请求,如下所示: http://example.com/product/getrating/{id}/ 假设我们选择JSON,我们返回: { "id": "1", "name": "widget1", "attributes": { "rating": {"type":"int", "value":4} } } 这对于面向公众的API很好。我明白了。 我有很多问题要问,如何将其与安全模型结合起来?我习惯了Web应用程序安全性,在该状态下,我始终具有标识用户的会话状态,因此无论他们决定发送给我什么,我都可以控制他们可以做什么。据我了解,这不是RESTful的,因此在这种情况下将是一个不好的解决方案。 我将尝试使用相同项目/等级的另一个示例。 如果用户“JOE”希望将添加评级到项目 可以使用以下方法完成: http://example.com/product/addrating/{id}/{givenRating}/ 在这一点上,我想存储表示“ JOE”给予产品{id}等级为{givenRating}的数据。 问题:我怎么知道请求来自“ JOE”而不是“ BOB”。 此外,如果要获取更敏感的数据(例如用户的电话号码)怎么办? 到目前为止,我得到的是: 1)使用HTTP的内置功能对每个请求(纯HTTP或HTTPS)进行身份验证。 这意味着现在每个请求都采用以下形式: https://joe:joepassword@example.com/product/addrating/{id}/{givenRating}/ 2)使用带有私钥和公钥的Amazon S3之类的方法:http : //www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/ 3)无论如何都要使用cookie并破坏REST的无状态部分。 第二种方法对我来说似乎更好,但我想知道我是否真的必须重新发明整个东西?自己哈希,存储,生成密钥等? 这听起来很像在典型的Web应用程序中使用会话并自己重写整个堆栈,这对我来说通常意味着“您做错了”,尤其是在处理安全性时。 编辑:我想我也应该提到OAuth。



4
UEFA / FIFA得分API [关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 4年前关闭。 改善这个问题 有人知道UEFA或FIFA是否提供足球比赛,官方球队名单,转会等等的得分API? 我找到了Footytube API,但不确定其稳定性和完整性。
72 web-services  api  rss 

10
如果无法实现基于REST的事务,那么REST到底有什么用呢?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 10年前关闭。 研究REST时,任何人可能会注意到的第一件事是没有定义任何事务语义,有人说这与REST是隐含的,而其他人则说任何尝试都会导致REST系统的“污染”。 。 但为了争辩,可以说REST确实成为一种流行的“ api”选择,并且宇宙中的每个站点都开始公开宁静的入口点。 没有交易行为(我说的是非补偿性),这些功能到底有什么用?因为在我看来REST的好处之一是它分解了数据的组成部分,您可能会认为这使它们可以使智能客户端从多个服务中组成数据(并添加和调整组成的数据)。但是,如果我无法独立地原子地更改此数据组成,那么使用REST就变得毫无用处。 随着时间的流逝以及对严重数据公开的需求的到来,我们想要的是:简单(REST赢得了胜利),并支持事务行为,因此我们可以可靠地操作这些数据。 现在,我已经在研究中多次阅读了一个特定的论证,它与我们应该如何考虑REST中的事务有关,给出的示例是购物车,您在其中隐式具有隔离性,因为购物车是你的。 但是我不同意这种说法,首先,购物车具有隔离功能只是方便,这不是事务隔离。如果在应用程序的某些部分正在读取数据的同时对购物车进行操作,会发生什么情况从中?我不希望应用程序的读取部分看到“仍在事务中”的数据。 更不用说并非所有数据更改都具有隐式事务模型这一事实,而通过多种服务进行的事务肯定没有。 在我看来,事务需要发生,并且需要以一种使实际的REST调用不了解事实的方式发生(将剩余的负载添加为一个大的否定,但是添加标头可以)。 我已经阅读了一些有关如何通过REST创建事务模型的建议,并且正在编写的一些规范似乎是最近的。 有什么真正的想法吗?不应有比REST更多的东西,以便可以利用REST的简单性来抵制可靠的数据操纵(“酸”交易)。 如果不是,我们是否有望真正做到这一点,并告诉服务开发人员,如果他们想在纯数据世界中进行交互,他们需要支持诸如肥皂之类的单片产品吗?甚至更糟糕的尝试将自己的自定义事务支持构建到REST之类的东西中,从而使每个服务都成为非标准服务并破坏REST的全部功能? 预先感谢您的任何想法。 编辑,添加了简短的场景: 想象一下一个客户窗体,该窗体负责创建专辑,为方便该专辑,而不是要求用户提供uri的艺术家资源,他们可以从艺术家列表中选择(很可能是从艺术家目录中获取) 。 为了便于使用,客户端可以手动输入歌手姓名,以便他们可以创建歌手“内联” ..在发布场景中,客户端代码理解这一点,并且在发送创建专辑请求之前,客户端首先尝试确定如果该艺术家已经存在,则为该艺术家获取uri,否则创建该艺术家并获取该艺术家uri。 然后,客户端代码继续创建相册,这比通常的客户端更聪明,它不仅仅位于REST和“笨拙”的发布之上,而是具有一些处理纯REST逻辑的交互。 但是,在这种情况下,最好先确保不创建艺术家,除非创建了专辑,除非首先创建了艺术家。 这并不像事务所暗示的那样“关键”,但是它定义了客户端代码宁愿作为一项操作发生的一组工作(毕竟,它使用户看起来像是一项操作)。 在这种情况下,我看到的唯一指导是在专辑创建失败的情况下让客户端进行补偿操作,特别是调用删除歌手。但这似乎是有问题的,因为委托人以为艺术家是被孤立的人,尽管可能性不大,如果另一个委托人已经“看到”该艺术家并分配给他,会发生什么? 这些是我对进行数据更改的关注,虽然当然还有其他差距(谁说不能再以后删除艺术家),但是这些动作并不透明(即,这些动作不是自动进行的)客户,但用户已明确要求的内容)。 我希望这有助于阐明该主题。


13
找不到依赖关系:期望至少有1个bean符合此依赖关系的自动装配候选条件。依赖注释:
我正在尝试使用Spring编写SOAP服务,但是我收到了依赖注入问题。我在@Autowired通过此服务使用时遇到了这样的问题: public interface UserDao { User getUser(String username); } Dao的实现如下: @Controller("userDao") public class UserDaoImpl implements UserDao { private static Log log = LogFactory.getLog(UserDaoImpl.class); @Autowired @Qualifier("sessionFactory") private LocalSessionFactoryBean sessionFactory; @Override public User getUser(String username) { Session session = sessionFactory.getObject().openSession(); // Criteria query = session.createCriteria(Student.class); Query query = session .createQuery("from User where …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.