关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

PHP服务器端API原理和示例说明(界面开发)

发布时间:2018-07-12 11:59:18

我相信大家都已经做过PHP请求API接口来获取数据,比如淘宝API,微信公众平台,天气查询,快递查询等。有些需要参考界面文件根据签名构建标志(签名)算法,或设置令牌,然后通过curl发送它。 POST请求获取参数并获取返回的数据,通常采用json或xml格式。

但现在情况正好相反。我们想要开发PHP服务器的API接口,也就是说,其他人请求我们,我们验证请求的有效性,并查询数据。

这种情况实际上用于移动应用程序开发。移动应用程序应用程序通常需要请求PHP接口来获取数据。但是,此请求通常未经过验证。根据不同的功能要求不同的URL。通常,直接获得get模式参数。数据。

本文简要介绍了服务器端验证请求有效性的方法以及接收参数的方法。

一个简单的获取请求,例如:http://www.chanmir.com/api/get_cat?id = 2,请求此URL将返回一些数据,无论谁使用编程语言来请求数据。

显然,如果你需要验证合法性,它将无法工作。所以你需要一个密钥,这次经常使用POST来请求url。

例如,传递的参数中有一个签名符号,值为98888.当然,有很多方法可以生成符号,这是不可能的。这只是一个随机写入,然后服务器收到98888的标志。如果我们同意98888合法,这次要确定该标志是否为98888,您可以验证这是合法请求。

但这太简单了,它立刻被破解了,设置这个标志毫无意义。因此,必须有一个生成符号的规则。发出请求时,将根据规则生成一个符号。当服务器接收到信号时,根据规则生成符号。如果生成的符号一致,则表示该请求是合法请求。每个请求都会附有一个验证标志。

还有一个称为令牌的验证,它在第一次请求时得到验证,不需要在一段时间内再次验证。这需要两个步骤。第一步是请求接口获取令牌以获取令牌。第二步是请求特定接口的功能。您需要携带令牌来传递参数。由于服务器首次存储令牌,然后在第一次请求令牌时返回令牌,后续请求可以确定传递的令牌是否存在。

许多界面开发使用这两种方法来确保隐私和安全性。

另外一点,发送POST请求经常使用PHP的CURL模块,比如对方通过curl发送POST请求,curl_setopt(ch,CURLOPT P OSTFIELDS,post_string),其中$ post_string是一个很好的PHP数组形式,还是json格式?

如果是PHP数组,我将直接从$ _POST ['xx']获取参数。如果它是json格式,我似乎使用file_get_contents'php://input','r')来获取它。然后json解析json数据以获取参数。

在什么情况下第二个?

这已在网上被问到,看看大家如何回答:

对于PHP,JSON和数组有时只是单行代码之间的差异。如果我写,我可以直接使用第一个。

我想你希望你的代码简洁,你可以使用第二个。我记得weixin的php sdk似乎与第二个类似(当然,它是xml格式)

如果对方使用面向对象的json直接序列化,使用json将使他的代码更简洁。

第一种方法是转换表单形式的POST协议。PHP会将PHP数组转换为HTTP格式的格式,这种格式在各种语言中都很常见,但这不是主流的API协议,更像是模拟提交表单。

大多数API协议都使用JSON POST,

第二种方法是将JSON数据放在HTTP Body中。它也是跨语言的,但作为API更友好。

第一种方法,直接PHP curl,如果数据内容处理不好,数组内容值@@ xxx / xxx这样的内容,curl会传递服务器上的本地文件,注意防范。

x-www-form-urlencoded是一种RFC标准,没有任何不兼容,跨语言和跨越时空的东西。 JSON是近年来出现的。它不是标准,很方便。

上面的PHP服务器端API原理和示例说明(界面开发)是小编共享的全部内容。


/template/Home/Zkeys/PC/Static