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

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

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

加密串 seqno ,

请求验证码 source,

设备唯一标识TerminalSN

时间戳,TimeStamp

版本Version

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

<?php

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 '<pre>';
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
var_dump($accessToken);

}

_post();

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

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

<?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

模拟post请求--测试api是否可用--再交给ios开发相关推荐

  1. ab 发送post请求测试API性能

    apache benchmark 工具 测试API 性能发送 Post 请求(Linux环境验证通过) 在apache bin 目录,在linux上执行命令: ./ab -n 1 -v 4 -p 'u ...

  2. ab 发送post请求 测试API性能

    apache benchmark 工具 测试API 性能发送 Post 请求(Linux环境验证通过) 在apache bin 目录,在linux上执行命令: ./ab -n 1 -v 4 -p 'u ...

  3. idea构建post请求_在IDEA中快速测试API接口

    IntelliJ IDEA从2017.3 版支持在IDEA中请求测试API接口,Editor REST Client 支持的文件类型有两种,.http 和 .rest,文件图标为 . 1.创建文件 1 ...

  4. (0011) iOS 开发之模拟HTTP请求与响应,返回自己想要的报文。

    iOS 本地模拟 HTTP请求的返回数据,用来先行开发. 在新需求的确定之后,在开发的开始阶段,一般后台接口先开发,这时客户端是拿不到接口文档规定的报文数据的,那我们怎么模拟接口请求返回数据尼? 直接 ...

  5. woo语言使用sockets模拟http请求

    print('sockets模拟http请求测试(正常情况下,请勿这样使用,请使用正规的http模块,这里仅仅探索sockets使用方法):') local sock = woo.sockets:ne ...

  6. 科普:iOS开发如何做外部测试

    原文链接 目录 1. 真机调试 2. adhoc 方式 3. Enterprise(企业级证书)方式 4. TestFlight,公开链接 我们做APP开发的,开发出来的APP还未上线,又要想给别人用 ...

  7. 2022 ios APP最新iOS开发上架测试教程

    2022 ios APP最新开发测试教程 本文详细介绍最新的在windows上进行ios app开发编译打包安装到手机测试的完整流程.介绍ios开发经常遇到的问题和解决方法,包括ios开发证书,ios ...

  8. java api 测试工具_Java 实现在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具

    本站工具,在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具后台所有实现代码.支持的请求协议有:Post.GetDelete.Put.Trace.Head.Options.特色是加了 ...

  9. 在线post测试java接口测试_好用的在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具-ApiPost...

    现在的模拟发送请求插件很多比如老外的postman等,但亲测咱们国内的 ApiPost 更好用一些,因为它不仅可以模拟发送get.post.delete.put请求,还可以导出文档,支持团队协作也是它 ...

最新文章

  1. 简单天气应用开发——基本功能完成
  2. 半分钟内能看透问题本质的人是如何思考的?
  3. 、PHP只能访问mysql_php中 mysql函数不能调用,只有mysql_query()可以用
  4. IT主要在线学习网站
  5. LevelDB 源码剖析(六)WAL模块:LOG 结构、读写流程、崩溃恢复
  6. 详解nohup和 区别
  7. 训练日志 2019.4.17
  8. delphi listview1添加指定列_对表格的列进行批量处理的函数详解
  9. 力扣812.最大三角形面积
  10. 【算法】剑指 Offer 63. 股票的最大利润
  11. Instance2:login interface
  12. 脉冲神经网络原理及应用pdf_CNN卷积神经网络原理讲解+图片识别应用(附源码)...
  13. css-flex 常见面试题
  14. onContextItemSelected 与 onMenuItemSelected 的那些事
  15. [论文评析]ArXiv,2021, CrossFormer技术分析
  16. 多小区下小区上行速率的计算(6)
  17. Axure 9.0激活码亲测可用
  18. Equitrac智能打印管理软件中文版
  19. 笔记本光驱接口怎么外接台式机硬盘?
  20. 计算机英语(第四版)刘艺英语单词

热门文章

  1. Javascript笔记02:严格模式的特定要求
  2. elasticsearch使用jetty进行简单的权限控制
  3. 一年成为emacs高手
  4. [模仿微软Live.cn]JavaScript输入邮箱自动提示
  5. 利用OpenCV的convexHull和convexityDefects做凸包(凸壳)检测及凸包(凸壳)的缺陷检测
  6. mysql 怎么导入函数_mysql导入导出包括函数或者存储过程_MySQL
  7. leetcode算法题--构建乘积数组
  8. DPDK pci设备初始化(十七)
  9. python生成验证码
  10. oracle 10g安装过程遇到的问题