记录请求到log,为了方便后续排查问题,在PHP里调用一个方法,实现将curl串记录下来即可方便复现请求。
<?php
/**
* Author: xishizhaohua@qq.com
* Date: 2015/11/2
*
*/
function getCurlCommand()
{
try {
if (php_sapi_name() == 'error cli'){
throw new Exception("cli");
}
$curlCommand = 'curl ';
$postData = $getData = '';
if($_GET) {
$gets = http_build_query($_GET);
$getData .= strpos($curlCommand, '?') ? '&' . $gets : '?' . $gets;
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' ) {
$posts = http_build_query($_POST);
$postData = ' -d "' . $posts . '"';
}
$path = isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : $_SERVER['PHP_SELF'];
$curlCommand .= '"' . "http://{$_SERVER['HTTP_HOST']}" . $path . $getData . '"';
if ($postData) {
$curlCommand .= $postData;
}
$headers = array();
if (function_exists('getallheaders')) {
$headers = getallheaders();
} else {
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
}
foreach ($headers as $key => $value) {
if($key == 'Accept-Encoding') $value = str_replace('gzip, ','',$value);
$curlCommand .= ' -H "' . $key . ':' . $value . '"';
}
return $curlCommand;
} catch (Exception $e) {
return $e->getMessage();
}
}
echo getCurlCommand();
eg:
curl “http://localhost/other/serverInfo.php?dd=ddd” -H “Host:localhost” -H “Connection:keep-alive” -H “Cache-Control:max-age=0” -H “Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8” -H “User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36” -H “DNT:1” -H “Accept-Encoding:deflate, sdch” -H “Accept-Language:zh-CN,zh;q=0.8,en;q=0.6” -H “Cookie:name=shikiliu; email=xishizhaohua%40qq.com”
分享到:
相关推荐
主要介绍了php生成curl命令行的方法,涉及php字符串与数组的动态操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
curl-cmd 从 http 请求对象生成 curl 命令行参数列表安装 npm install curl-cmd例子取自 HTTP 获取请求的示例 var http = require ( 'http' ) ;var curl = require ( 'curl-cmd' ) ;var options = { hostname : '...
原版的curl是不支持SSL的,这是包含了SSL支持的Curl命令行版本。 可以通过命令行的方式进行http通讯。
curl 命令行下的简单浏览器。用法自己网上搜
curl命令是在命令行方式下工作,利用URL的语法进行数据的传输或者文件的传输。 curl ...
http2curl :triangular_ruler: 将Golang的http.Request转换为CURL命令行 要执行相反的操作,请检出 。例子import ( "http" "moul.io/http2curl")data := bytes . NewBufferString ( `{"hello":"world","answer":...
这个注解主要用在spring -cloud 的feign的class上面,被注解的class下的所有http请求都会生成curl链接
curl 命令行工具,进行测试 nacos 的 openA Nacos 配置管理:Nacos 下载,安装 Nacos Server
开始菜单--> 输入cmd打开dos命令窗口, 进入curl命令行工具目录, 执行curl http://www.baidu.com
Curl(CommandLine Uniform Resource Locator)翻译为:命令行统一资源定位器, Curl是一个利用URL语法在命令行方式下工作的文件传输工具. 可以简单理解为: 在命令行环境下访问url链接地址的工具(简记为:cURL或Curl或...
主要介绍了使用curl命令行模拟登录WordPress的方法,本文通过图文实例相结合给大家介绍的非常详细,需要的朋友可以参考下
curl.exe 用于windows上来模拟浏览器请求的工具,由于官方没有编译好的版本,特此发一个编译好的上来供大家使用,免得自己再去编译了。
如何使用Thrurl 是一个命令行客户端,很像 cURL。 使用它很简单: thrurl -h "my-thrift-server" -p 5000 -m "checkinsPerLocation" -s "CheckinService" -a "{ user: { id: 1 } }"Thrurl 将解析响应并以 JSON 格式...
用来替换WAMP server下的php_curl.dll,解决加载curl报错或无法加载问题。下载解压后,覆盖wamp\bin\php\php5.4.3\ext目录下对应文件,重启apache即可。如果不行请检查: 是否已修改php.ini文件去掉extension=...
功能强大的网络工具,它能够通过http、ftp等方式下载文件,也能够上传文件
h2c:标头2卷曲。 提供一组HTTP请求标头,输出curl命令行以生成该组。 在线尝试转换器
Curl是一个命令行工具,用于向服务器发送请求并接收响应。它支持多种协议,包括HTTP、HTTPS、FTP、SCP、SFTP等。Curl可以在终端中使用,通过命令行发送HTTP请求,获取响应并将其输出到终端。它可以用于测试API、下载...
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。 cURL支持的通信协议有...