我很难弄清楚Web服务如何处理请求和发送响应,以及我的网站/模块将如何处理它。所以这些是我的问题,并略微说明我为什么这样问:
向网络服务发送请求的正确方法是什么?
网络服务通常如何回复网站请求?
PHP网站如何向网络服务发送请求? cURL是正确的方式吗?
我正在学习PHP和许多其他事情的学生,我现在的工作是创建一个Joomla模块来显示来自Web服务的信息(可能是用java创建的,或者可能由我创建的,当我我学习java ...)。
我知道我将使用http请求与Web服务进行通信,但我担心我使用它时出错(向网址发出请求,如浏览器)。
所以,我做了一个小例子站点和一个示例API。 api使用Slim微框架来创建路径,访问我的数据库并在json中返回内容(这意味着:如果我访问' api.com/api/something'在我的浏览器中,我会看到一个带有很多json)。我假装这是我的网络服务。
示例站点使用cURL向API发送请求,读取内容并解码json并执行操作。这似乎迫使我。
我没有太多支持来理解网络服务,如果我的方式正确(或远离此)。
感谢您的帮助。
答案 0 :(得分:0)
对于将来的问题,请在每个条目中提出一个问题。
向网络服务发送请求的正确方法是什么?
这实际上取决于Web服务,它们需要什么。它可以像简短的文本字符串一样简单,发送XML格式或JSON格式的数组。您需要研究相关的Web服务。
网络服务通常如何回复网站请求?
这又取决于网络服务。他们不一样。 Web服务将提供有关其期望的内容以及响应方式的文档。
PHP网站如何向网络服务发送请求? cURL是正确的方式吗?
Curl是一种很好的方法,通常是PHP中使用的方法。
答案 1 :(得分:0)
你走在正确的轨道上。 Web服务只是一个处理或存储工具,旨在被其他程序访问,就像数据库或文件服务器服务一样。
向Web服务发送请求的正确方法是什么
这取决于。最常见的实现使用SOAP或REST,它们在HTTP协议之上定义其他语义。 SOAP使用单个URL作为服务的网关,并且更具体地选择功能,并且相关数据嵌入在通过POST呈现的XML有效载荷中。 HTTP仅仅是消息交换的承载者。在REST中,HTTP部分被集成到事务的语义中。
网络服务通常如何回复请求
我不确定你在这里问的是什么。它应该报告请求的状态,任何相关的错误消息以及可能的一些数据。
这些特定的API将是独一无二的并记录在案。
cURL是正确的方式吗?
虽然可以在PHP中使用HTTP包装器功能做很多事情,但libcurl提供了更多的灵活性。所以,是的,如果不使用cURL就很难实现REST客户端,OTOH SOAP客户端(通常)在HTTP层(通常)不那么复杂,但如果使用SOAP库/框架来抽象更复杂的生活,那么生活会更简单协议