热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

模拟post请求测试api是否可用再交给ios开发

提交给iso开发前.先模拟post提交,测试返回是否正确post.php文件ios每次最少要提交5个数据,加密串seqno,请求验证码source,设备唯一标识TerminalSN

提交给iso开发前.先模拟post提交,测试返回是否正确

=============post.php文件

ios每次最少要提交5个数据,

加密串 seqno ,

请求验证码 source,

设备唯一标识TerminalSN

时间戳,TimeStamp

版本Version

 

source 计算方式    双重md5加密   md5( md5(api_key .TerminalSN) .TimeStamp )

 

 

include './curl.lib.php';

 

function _post(){
$url = 'http://192.168.2.11/api/app/ios/channel';

$data = array(
'SeqNo'=>'1460531371010',
'Source'=>'b6461264ddc8f9fbdd6c8d23a991a21d',
'TerminalSN'=>'B452A056-F75D-4019-996C-6E906A0C31DD',
'TimeStamp'=>'1460531371',
'Version'=>'1.0',
);

 

$accessToken = Curl::callWebServer($url, $data, 'POST');

echo '

';
echo '';
var_dump($accessToken);

}

_post();

 

 类库,设置为公共的,静态方法 .引入后.双引号直接调用

=============curl.lib.php

class Curl {
private static $_ch;
private static $_header;
private static $_body;

private static $_COOKIE = array();
private static $_options = array();
private static $_url = array ();
private static $_referer = array ();

/**
* 调用外部url
* @param $queryUrl
* @param $param 参数
* @param string $method
* @return bool|mixed
*/
public static function callWebServer($queryUrl, $param='', $method='get', $is_json=true, $is_urlcode=true) {
if (empty($queryUrl)) {
return false;
}
$method = strtolower($method);
$ret = '';
$param = empty($param) ? array() : $param;
self::_init();
if ($method == 'get') {
$ret = self::_httpGet($queryUrl, $param);
} elseif($method == 'post') {
$ret = self::_httpPost($queryUrl, $param, $is_urlcode);
}
if(!empty($ret)){
if($is_json){
return json_decode($ret, true);
}else{
return $ret;
}
}
return true;
}

private static function _init() {
self::$_ch = curl_init();

curl_setopt(self::$_ch, CURLOPT_HEADER, true);
curl_setopt(self::$_ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt(self::$_ch, CURLOPT_FRESH_CONNECT, true);
}

public static function setOption($optArray=array()) {
foreach($optArray as $opt) {
curl_setopt(self::$_ch, $opt['key'], $opt['value']);
}
}

private static function _close() {
if (is_resource(self::$_ch)) {
curl_close(self::$_ch);
}

return true;
}

private static function _httpGet($url, $query=array()) {

if (!empty($query)) {
$url .= (strpos($url, '?') === false) ? '?' : '&';
$url .= is_array($query) ? http_build_query($query) : $query;
}

curl_setopt(self::$_ch, CURLOPT_URL, $url);
curl_setopt(self::$_ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt(self::$_ch, CURLOPT_HEADER, 0);
curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt(self::$_ch, CURLOPT_SSLVERSION, 1);

$ret = self::_execute();
self::_close();
return $ret;
}

private static function _httpPost($url, $query=array(), $is_urlcode=true) {
if (is_array($query)) {
foreach ($query as $key => $val) {
if($is_urlcode){
$encode_key = urlencode($key);
}else{
$encode_key = $key;
}
if ($encode_key != $key) {
unset($query[$key]);
}
if($is_urlcode){
$query[$encode_key] = urlencode($val);
}else{
$query[$encode_key] = $val;
}

}
}
curl_setopt(self::$_ch, CURLOPT_URL, $url);
curl_setopt(self::$_ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt(self::$_ch, CURLOPT_HEADER, 0);
curl_setopt(self::$_ch, CURLOPT_POST, true );
curl_setopt(self::$_ch, CURLOPT_POSTFIELDS, $query);
curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt(self::$_ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt(self::$_ch, CURLOPT_SSLVERSION, 1);


$ret = self::_execute();
self::_close();
return $ret;
}

private static function _put($url, $query = array()) {
curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'PUT');

return self::_httpPost($url, $query);
}

private static function _delete($url, $query = array()) {
curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'DELETE');

return self::_httpPost($url, $query);
}

private static function _head($url, $query = array()) {
curl_setopt(self::$_ch, CURLOPT_CUSTOMREQUEST, 'HEAD');

return self::_httpPost($url, $query);
}

private static function _execute() {
$response = curl_exec(self::$_ch);
$errno = curl_errno(self::$_ch);

if ($errno > 0) {
throw new \Exception(curl_error(self::$_ch), $errno);
}
return $response;
}
}

 


转载于:https://www.cnblogs.com/bj-tony/p/5387450.html


推荐阅读
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
  • 在安装并配置了Elasticsearch后,我在尝试通过GET /_nodes请求获取节点信息时遇到了问题,收到了错误消息。为了确保请求的正确性和安全性,我需要进一步排查配置和网络设置,以确保Elasticsearch集群能够正常响应。此外,还需要检查安全设置,如防火墙规则和认证机制,以防止未经授权的访问。 ... [详细]
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • 2023年必备的六大Web3安全交互策略与实践
    2023年必备的六大Web3安全交互策略与实践 ... [详细]
  • 在Ubuntu 20.04 Linux系统中部署Git的详细步骤与最佳实践
    在Ubuntu 20.04 Linux系统中部署Git时,首先确保您的操作系统版本正确,并已以具备sudo权限的用户身份登录。推荐使用APT软件包管理器进行安装,这是最简便且可靠的方法。此外,遵循最佳实践,如定期更新Git版本和配置全局设置,可以进一步提升使用体验和安全性。 ... [详细]
  • 本文推荐了六款高效的Java Web应用开发工具,并详细介绍了它们的实用功能。其中,分布式敏捷开发系统架构“zheng”项目,基于Spring、Spring MVC和MyBatis技术栈,提供了完整的分布式敏捷开发解决方案,支持快速构建高性能的企业级应用。此外,该工具还集成了多种中间件和服务,进一步提升了开发效率和系统的可维护性。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 如何利用Git实现高效的多人协作开发(远程仓库应用实例)——Ares Zhao
    Git作为一种分布式版本控制系统,每位开发者都是本地仓库的管理者。然而,为了实现团队间的高效协作,需要将本地的开发成果推送至远程共享仓库,以便其他成员能够同步更新。本文将以GitHub为例,详细介绍如何通过设置和使用远程仓库,实现多人协作开发的最佳实践。 ... [详细]
  • 深入解析:RKHunter与AIDE在入侵检测中的应用与优势
    本文深入探讨了RKHunter与AIDE在入侵检测领域的应用及其独特优势。通过对比分析,详细阐述了这两种工具在系统完整性验证、恶意软件检测及日志文件监控等方面的技术特点和实际效果,为安全管理人员提供了有效的防护策略建议。 ... [详细]
  • 如何选择优质U盘品牌:专业推荐与选购指南
    如何选择优质U盘品牌:专业推荐与选购指南 ... [详细]
  • 在 Go 开发环境中,通过使用 iTerm 和 Oh My Zsh,可以显著提升终端操作的效率和体验。Oh My Zsh 是一个强大的 Zsh 配置管理框架,提供了丰富的插件支持,如代码高亮、自动补全和多种编程语言支持,同时还拥有众多美观的主题,使终端界面更加个性化和高效。Zsh 作为一种高度可定制的 shell,不仅适用于交互式应用,还可用作脚本解释器,集成了 bash、ksh 和 tcsh 等其他 shell 的诸多优点,并具备独特的功能特性。 ... [详细]
author-avatar
提着变形金刚的Oceannk_737
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有