一、概述及安装 SOAP扩展可以用于编写SOAP服务器和客户端,支持 SOAP 1.1, SOAP 1.2 和 WSDL 1.1 规格的子集。 此扩展需要 libxml PHP 扩展。...要开启SOAP支持, 配置 PHP 时要加上 –enable-soap ....二、相关函数 is_soap_fault — Checks if a SOAP call has failed use_soap_error_handler — Set whether to use the...SOAP error handler 三、相关类及成员函数 SoapClient SoapClient::__call — Calls a SOAP function (deprecated) SoapClient...headers for subsequent calls SoapClient::__soapCall — Calls a SOAP function SoapClient::SoapClient —
soapclient 官方推荐的调用对方函数的方法 _soapCall 函数调用如果失败,完全不输出任何信息。 这个包无法查看对方返回的 http 状态。...封装好的数据对方无法解析,直接报解析错误,需要继承并修改官方包,代码如下: ---- class MSSoapClient extends SoapClient { function...参考地址 http://stackoverflow.com/questions/2456924/php-and-soap-change-envelope
它的精华所在就是能够跨平台跨语言,即PHP构建的客户端能够访问java构建的Web service、.NET构建的客户端能够访问PHP构建的Web service、A服务器能够访问使用B服务器中的函数等等...3、访问大概流程 1、客户根据WSDL描述文档,会生成一个SOAP请求消息。(客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器中。) ...(请求处理器的作用在于,解析收到的SOAP请求,调用Webservice,然后再生成相应的SOAP应答) 3、Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。 ...忽略其中的细节,简而言之就是浏览器访问Web服务器A中的相应程序(即服务器A定义调用服务器B Web service的应用程序,此程序是客户端);Web服务器B响应该请求,并调用执行相应的程序,最终以http...响应将数据发给Web服务器A;Web服务器A在返回给浏览器。
API 设计指南 - 阮一峰 Restful API 的设计规范 实战经验的总结,具有较强的启发意义 撰写安全合格的REST API 利用好 HTTP 协议所具备的特征 Web 服务编程,REST 与 SOAP...比如对分页的处理方法、接口版本的设计等等 Mailgun Documentation 邮件服务 REST API Enchant REST API Coinbase API 设计的挺好的,包括官网提供的接口客户端...API 课程 社区有一门实战课程 《Laravel 教程实战高级 - 构架 API 服务器》 ,主要专注于 App 和 SPA 后端 API 服务器实战开发。...手把手带你构建一个设计合理的 RESTful API 服务器。...修改个人信息; 话题接口 —— 发布、修改、删除、列表; 话题回复接口 —— 发布、修改、删除、列表; 权限控制 —— 权限列表,角色列表; 资源推荐接口、活跃用户接口; 接口本地化处理; API 接口错误代码机制
客户端因 SOAP 故障而失败,原因为 WU_E_PT_SOAP_* 错误代码。...0x80244007 和 0x80244015:这两个错误通常与 Windows Update 客户端在与更新服务器通信时遇到问题有关。可能是网络问题、服务器问题或客户端配置问题导致的。...0x80244010:此错误通常表示 Windows Update 客户端在短时间内向更新服务器发送了太多的请求,超过了服务器允许的限制。...0x8024401C:此错误通常表示 Windows Update 客户端无法从更新服务器下载更新,因为服务器的负载过高。...0x8000FFFF:此错误通常表示 Windows Update 在尝试安装更新时遇到了未知的严重错误。
HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。让我们通过本文的学习,好好了解一下状态码的工作机制。...1 状态码告知从服务器端返回的请求结果 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。 借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。...这里写图片描述 表示从客户端发来的请求在服务器端被正常处理了。 在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。...比如,用户把 URI 保存成书签,但不会像 301 状态码出现时那样去更新书签,而是仍旧保留返回 302 状态码的页面对应的 URI 4 4XX 客户端错误 4XX 的响应结果表明客户端是发生错误的原因所在...5 5XX 服务器错误 5XX 的响应结果表明服务器本身发生错误。 5.1 500 Internal Server Error ? 这里写图片描述 该状态码表明服务器端在执行请求时发生了错误。
状态的转移 实际上,我们在看某些页面的时候,一直在默默的接受这个状态转移,比如,“下一页”,因为这个 “下一页” 就会表示,你从当前的这个状态,转到下一个未知的状态, 这实际上就是状态的转移。...SOAP的消息是基于xml并封装成了符合http协议,因此,它符合任何路由器、 防⽕墙或代理服务器的要求。...SOAP可以使⽤任何语⾔来完成,只要发送正确的soap请求即可,基于soap的服务可以在任何平台⽆需 修改即可正常使⽤ **什么是RPC RPC就是从⼀台机器(客户端)上通过参数传递的⽅式调⽤另⼀台机器...客户端发起请求,服务器返回响应(类似于Http的⼯作⽅式) RPC 在使⽤形式上像调⽤本地函数(或⽅法)⼀样去调⽤远程的函数(或⽅法)。...这都是比较出名的用 RPC 的框架,但是很多人就会说,别瞎扯了,人家SpringCloud 明明是用的 http ,确实,也没啥错误。
如果是,说明我们成功获取到了数据;否则,打印出错误状态码。...wsdl'# 创建SOAP客户端client = Client(wsdl_url)# 调用SOAP服务的方法获取天气信息,假设方法名为GetWeatherweather_info = client.service.GetWeather...创建 SOAP 客户端:使用Client(wsdl_url)创建一个 SOAP 客户端实例,zeep库会根据 WSDL 文件自动生成客户端代码,方便我们调用服务。...错误处理:API 调用过程中可能会遇到各种错误,如网络错误、权限错误、服务器错误等。一定要编写完善的错误处理代码,以便在出现问题时能够及时发现并解决。...让我们一起在技术的道路上越走越远,探索更多的未知领域吧!
HTTP请求的库 php-curl-class - PHP的Curl类 Beanbun - 多进程网络爬虫框架 SOAP soap-client - A general purpose SOAP client...for PHP soap-client - PHP implementation of SOAP 1.1 and 1.2 client specifications wsdl2phpgenerator...Elastica - 另一个ElasticSearch的客户端库 Solarium - Solr 的客户端库 ....、资源服务器和客户端库 OAuth2 Server - 一个OAuth2服务器实现 PHP oAuthLib - 另一个OAuth库 TwitterOAuth - 一个Twitter OAuth库 TwitterSDK...OAuth 1.0 Client - 一个 OAuth 1.0 客户端库. OAuth 2.0 Client - 一个 OAuth 2.0 客户端库.
RPC 的工作原理 客户端调用远程过程,将参数和附加信息序列化为消息,然后将消息发送到服务器。服务器收到消息后,会反序列化其内容,执行请求的操作,并将结果返回给客户端。...SOAP 消息由以下部分组成: 每封邮件开头和结尾的信封标签, 包含请求或响应的主体 如果消息必须确定任何细节或额外要求,则需要标头,以及 错误通知,告知在请求处理过程中可能发生的任何错误。...SOAP 支持有状态和无状态消息传递。在有状态场景下,服务器会存储接收到的信息,这些信息可能非常庞大。但对于涉及多方和复杂事务的操作来说,这样做是合理的。 SOAP 的优点 语言和平台无关。...RESTful 架构应遵循以下六个架构约束: 统一接口:允许以统一的方式与给定的服务器进行交互,无论设备或应用程序类型如何 无状态:处理请求所需的状态包含在请求本身中,并且服务器不存储与会话相关的任何内容...与 SOAP 类似,GraphQL 提供发生的错误的详细信息。其错误消息包含所有解析器,并指向出错的确切查询部分。 灵活的权限。GraphQL允许选择性地公开某些函数,同时保留隐私信息。
最常见的误解之一,使用HTTP动词(如GET,PUT,POST),而不是使用SOAP绑定网站前端服务器的任何设计框架都称为“RESTful”。...REST的核心原则是解决这些方面的问题,可以被建模成被客户端消费理解的返回对象。 这种面向资源的思想,而不是客户端和服务器之间通信的实现细节,实际上就是REST的全部内容。...重点 可以建模为客户端可以使用或采取行动的资源,不是客户端和服务器之间通信的实现细节 资源-----返回一个资源对象 正确返回 { "login":true } 错误返回 { true } 核心...RESTful API的具体实现则是 资源---url本身就是名词,而不含有动词 错误 /getLoginInfo 正确 /loginInfo 使用或采取行动----略 不是客户端和服务器之间通信的实现细节...---使用http的状态码来描述请求状态而不是自定义code 例如这种常见的返回对象是不符合RESTful API的 { code:001 message:密码错误 data:{ }
(在RESTful 中有重要应用) 200 OK //客户端请求成功 400 Bad Request //客户端请求有语法错误,不能被服务器所理解 401 Unanthorized //服务器收到请求,.../ 服务器当前不能处理客户端的请求 RESTful 架构与其他架构的区别 API 的开发方式不止一种,另一种比较流行的开发方式是SOAP WebService。...状态码:当客户端发送一个请求时,服务端应当响应什么状态码 错误处理:如当发现客户端传入的参数有问题时,该返回什么样的状态信息。...例如创建用户资源时需要用户名、密码,而前端只提供用户名字段,那么就要返回一个422 状态码,并返回错误信息:”密码不能为空“ 500 INTERNAL SERVER ERROR 服务器内部错误,此时服务端无法处理任何请求...错误处理 如果状态码是4xx或5xx,就应该向用户返回出错信息。
Body 元素一个包含错误和状态信息的 Fault 元素以上所有元素都声明在 SOAP 信封的默认命名空间中语法规则以下是一些重要的语法规则:SOAP 消息必须使用 XML 进行编码SOAP 消息必须使用...它们不属于 SOAP 命名空间SOAP Fault 元素可选的 SOAP Fault 元素用于指示错误消息。SOAP Fault 元素包含了 SOAP 消息的错误和状态信息。...HTTP 客户端使用 TCP 连接到 HTTP 服务器。...: 200然后,服务器处理请求并将 HTTP 响应发送回客户端。...响应包含指示请求状态的状态代码:200 OKContent-Type: text/plainContent-Length: 200在上面的示例中,服务器返回了状态代码 200。
HTTP协议工作于客户端-服务端架构之上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。...4xx:客户端错误–请求有语法错误或请求无法实现 5xx:服务器端错误–服务器未能实现合法的请求 常见状态代码、状态描述、说明: 200 OK //客户端请求成功 400 Bad Request...//客户端请求有语法错误,不能被服务器所理解 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden //...服务器收到请求,但是拒绝提供服务 404 Not Found //请求资源不存在,eg:输入了错误的URL 500 Internal Server Error //服务器发生不可预期的错误 503...,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。
REST 在 REST 中,为了实现无状态的原则,服务器不会维护客户端的会话状态。相反,客户端会在每个请求中包含足够的信息,以便服务器可以理解该请求,而不需要依赖之前的请求或会话状态。...这种方式下,服务器不需要维护客户端的会话状态,从而实现了 REST 的无状态原则。 总结 SOAP 和 REST 是两种不同的架构风格,它们在很多方面都有所不同,其中一个重要的区别就是状态管理。...SOAP 是一种基于 XML 的协议,它使用 SOAP 消息来传输数据。在 SOAP 中,服务端通常会维护客户端的状态信息,因为 SOAP 协议本身并不提供状态管理机制。...需要注意的是,HTTP 协议是一种无状态协议,即每个请求和响应之间是相互独立的,服务器不会保存客户端的状态信息。...在使用 SOAP 协议时,客户端和服务器之间的通信流程通常如下: 客户端向服务器发送 HTTP 请求报文,请求调用某个 SOAP 服务。
RPC或者SOAP风格的架构下HTTP是作为传输协议使用。 3.请求的无状态 REST的无状态是指客户端请求服务器时,应提供足够的信息以让服务器能理解并提供服务。...2、返回状态和错误信息封装在返回结果中,说明对于错误处理也由百度官方自定义协议解释。 3、返回结果关心的是满足当前接口数据,如果想进一步了解街道信息,客户端须根据获取街道信息API定义获取。...2.Saleforce SOAP API Saleforce提供了SOAP(简单对象访问协议) API,SOAP 通过发布WSDL(网络服务描述语言)文件来描述服务器提供的API的输入参数结构和返回数据结构以及可能的异常信息...客户端通过WSDL生成客户端调用代码(SOAP语言无关,可跨开发语言调用),就能调用远程的服务API。 下图表示表示了Saleforce的提供的API的WSDL: ?...3、请求的无状态:由于服务器没有会话上下文信息,提高系统的可伸缩性。缺点是传输冗余一些。 4、多级缓存:客户端代理,代理服务器,缓存服务器提供了强大缓存能力,提高了系统的可用性。
核心特点: 基于XML:SOAP消息使用XML进行编码,这使得它具有良好的可读性和跨平台性。 协议标准化:SOAP定义了一套严格的消息格式、安全性(如WS-Security)和错误处理规范。...灵活性不足:SOAP的严格规范限制了其在快速迭代和敏捷开发中的应用。 2. REST(表述性状态转移) REST是一种基于HTTP的、用于构建网络应用的架构风格。...无状态性:REST要求每个请求都包含足够的信息来独立处理,不依赖于服务器端的会话状态。 多种数据格式:REST支持JSON、XML等多种数据格式,提高了API的灵活性和可扩展性。...有状态性:GraphQL本质上是有状态的,这可能会影响某些场景的可扩展性。 4. RPC(远程过程调用) RPC是一种允许客户端在远程服务器上执行函数(或过程)的通信协议。...它通过将远程函数调用封装成消息进行传输,实现了客户端和服务器之间的透明通信。 核心特点: 透明通信:RPC使得客户端可以像调用本地函数一样调用远程函数。
因此,客户端要么会担心调用特定端点的带来的任何可能的副作用,要么需要尝试弄清楚要调用的端点,因为客户端不了解服务器如何命名其函数。 可发现性低。...SOAP 支持有状态和无状态消息传递。在有状态的情况下,服务器存储接收到的信息可能非常繁琐复杂。但这对于涉及多方和复杂交易的操作是合理的。 2 SOAP 的优势 独立于语言和平台。...SOAP API 规范允许返回带有错误码及其说明的的 XML 重试消息。 一系列的安全拓展。SOAP 与 ES-Security 集成,因此 SOAP 可满足企业级事务要求。...· 缓存 · 客户端-服务器体系结构:允许双方独立发展 · 应用程序的层级系统 · 服务端向客户端提供可执行代码的能力 实际上,某些服务仅在某种程度上是 RESTful 的。...详细的错误消息:GraphQL 以类似于 SOAP 的方式提供所发生错误的详细信息。它的错误消息包括所有解析器,并指向确切的发生故障时的查询部分。
服务器: pop.163.com SMTP 服务器: smtp.163.com IMAP 服务器: imap.163.com 获取客户端授权密码: 授权码 授权码是用于登录第三方邮件客户端的专用密码...点击【设置】 > 【客户端授权密码】 点击【开启】, 设置一个授权码, 比如本例中将授权码设置为: mailPASSWORD 配置 env 文件: Laravel/Lumen的系统配置一般都配置项目根目录的...SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。...不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。...所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。 Swift Mailer Swift Mailer, 是由 symfony 开发的一个邮件发送类库。
因此,客户端要么会担心调用特定端点的带来的任何可能的副作用,要么需要尝试弄清楚要调用的端点,因为客户端不了解服务器如何命名其函数。 可发现性低。...SOAP 支持有状态和无状态消息传递。在有状态的情况下,服务器存储接收到的信息可能非常繁琐复杂。但这对于涉及多方和复杂交易的操作是合理的。 SOAP 的优势 独立于语言和平台。...SOAP API 规范允许返回带有错误码及其说明的的 XML 重试消息。 一系列的安全拓展。SOAP 与 ES-Security 集成,因此 SOAP 可满足企业级事务要求。...缓存 客户端 - 服务器体系结构:允许双方独立发展 应用程序的层级系统 服务端向客户端提供可执行代码的能力 实际上,某些服务仅在某种程度上是 RESTful 的。...详细的错误消息:GraphQL 以类似于 SOAP 的方式提供所发生错误的详细信息。它的错误消息包括所有解析器,并指向确切的发生故障时的查询部分。