curl命令怎么算成功,curl命令

http://www.itjxue.com  2023-01-18 06:32  来源:未知  点击次数: 

Linux运维命令Curl - 日常用法总结

在Linux系统中,curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载操作,是综合传输工具,习惯上称url为下载工具。下面就日常运维中基于curl命令使用做下总结

一、Curl命令用法

1. curl语法和参数选项

# curl [option] [url]

curl常见参数

2. curl使用说明

curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面说下curl命令的日常使用示例:

3. curl上传文件的用法(POST请求方式)

一般来说,我们都会用curl下载网页,但是curl上传文件则不常用。下面说下curl模拟"multipart/form-data"形式的form上传文件, 命令稍稍复杂些。

4. curl常用示例

5. curl命令的超时时间

二、Curl的GET、POST、PUT、DELETE请求

1. GET、POST、PUT、DELETE含义与区别

2. GET、POST、PUT、DELETE四种请求方式的curl访问

怎么判断curl调用接口返回成功:响应码

背景:最近高可用测试,双机倒换后,需要统计多久倒换结束了。我的方法是通过业务来测试,客户端和服务端都能正常访问了,对外提供服务的能力肯定就提供了。

因为不知道什么时候倒换开始和结束,需要每一秒都发curl请求,然后统计每次调用接口的时间和响应结果,并根据响应结果写入文件,方便统计和分析测试结果。

我选择简单的shell脚本,上手快。Python的话需要环境上安装相应软件,请求的响应更容易处理更便于处理。本文选择shell,curl来发请求。

1) #! /bin/bash

# 指脚本使用/bin/bash来解释执行,#!是对脚本的解释器程序路径。标记为#!/bin/sh的脚本不应使用任何POSIX没有规定的特性 (如let等命令, 但#!/bin/bash可以)。

2) while循环的格式

while expression

do

command

command

```

done

或while [条件判断式]

do

程序

done

举例:计数器控制的while循环

#!/bin/bash

int=1

while [ $int=5 ]

do

? ? echo $int

? ? let "int++"

done

3) if判断

if [ 条件判断一 ] (||) [ 条件判断二 ]; then

elif [ 条件判断三 ] (||) [ 条件判断四 ]; then

else

? 执行第三段内容程式

fi

4) curl

curl -I -s --connect-timeout 5 -m 5 -w "%{http_code}" -o /dev/null?

200

-I/--head 仅返回消息头部,使用HEAD请求

-s/--slient 减少输出的信息,比如进度

--connect-timeout seconds 指定尝试连接的最大时长

-m/--max-time seconds 指定处理的最大时长

-w "参数"? 自定义curl的输出

-o/--output file 指定输出文件名称

#!/bin/bash

#根据测试背景填写连接超时时长,单位秒

ct=5

#根据测试背景填写响应最大时长,单位秒

rm=5

#根据测试背景填写URL

uri=""

i=1

while [ $i=36000 ]

do

? ? echo? `date` === $i === get-baidu.log

? ? let i++

? ? resp=`curl -I -s --connect-timeout $ct -m? $rm -w "%{http_code}" -o /dev/null? $url`

? ? ? if [ $resp==200 ]; then

? ? ? ? ? ? ? echo? `date`? == $i ==$resp? get-baidu.log

? ? ? else

? ? ? ? ? ? echo? `date`? == $i ==$resp? get-baidu.log

? ? ? ? ? ? echo? `date`? == $i ==$resp? get-baidu-fail.log

fi

done

找个和待测试环境网络可达的Linux环境,修改相关信息,直接运行即可。

注意uri是get请求,如果是post需要修改curl。

如果需要token认证则根据待测系统的实现进行携带token , 修改curl命令即可。

如果需要ssl证书,则携带相应证书,修改curl命令即可。

如果是ipv6的URL,curl中带上-6 -g参数。

计算响应时长(本例子是双机倒换时长)日志查看,从 get-baidu-fail.log找到失败点,在总的日志中找到相应记录,进行计算即可。

curl命令在PHP中怎么用

这是我项目中一直在用的一个方法

?php

function?curl($url,$params?=?array(),$header?=?array(),$timeout?=?180){

????if(empty($url))?return?$url;

????$curl?=?curl_init();

????curl_setopt($curl,?CURLOPT_URL,$url);//请求url地址

????curl_setopt($curl,?CURLOPT_HTTPHEADER?,?$header?);??//构造IP

????

????if(!empty($params)??count($params)??0){

????????curl_setopt($curl,?CURLOPT_POST,?true);

????????

????????//Request?Payload格式数据

????????if(isset($params['is_json'])??$params['is_json']?===?true){

????????????unset($params['is_json']);

????????????$params?=?json_encode($params);

????????}else{

????????????$params?=?http_build_query($params);

????????}

????????curl_setopt($curl,?CURLOPT_POSTFIELDS,?$params);????????

????}

????//curl_setopt($curl,?CURLOPT_HEADER,?true);//是否返回响应头信息

????curl_setopt($curl,?CURLOPT_RETURNTRANSFER,?true);//是否将结果返回

????curl_setopt($curl,?CURLOPT_FOLLOWLOCATION,?true);//是否重定向

????//curl_setopt($curl,?CURLOPT_USERAGENT,?'Mozilla/5.0?(Windows?NT?6.1;?WOW64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/51.0.2704.106?Safari/537.36');

????curl_setopt($curl,?CURLOPT_SSL_VERIFYPEER,?false);???//?只信任CA颁布的证书??

????//curl_setopt($curl,?CURLOPT_CAINFO,?$cacert);?//?CA根证书(用来验证的网站证书是否是CA颁布)??

????//curl_setopt($curl,?CURLOPT_SSL_VERIFYHOST,?2);?//?检查证书中是否设置域名,并且是否与提供的主机名匹配??

????//?从证书中检查SSL加密算法是否存在

????curl_setopt($curl,?CURLOPT_SSL_VERIFYHOST,?FALSE);

????curl_setopt($curl,?CURLOPT_HTTP_VERSION,?CURL_HTTP_VERSION_1_0);?

????//curl_setopt($curl,?CURLOPT_HTTPHEADER,?array("Expect:?"));?

????curl_setopt($curl,?CURLOPT_IPRESOLVE,?CURL_IPRESOLVE_V4?);

????curl_setopt($curl,?CURLOPT_CONNECTTIMEOUT,?$timeout);//用来告诉PHP脚本在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况;

????curl_setopt($curl,?CURLOPT_TIMEOUT,?$timeout);//用来告诉成功PHP脚本,从服务器接收缓冲完成前需要等待多长时间。如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,这个参数就会很有用。

????//?自动设置Referer

????curl_setopt($curl,?CURLOPT_AUTOREFERER,?1);

????//curl_setopt($curl,?CURLOPT_COOKIEJAR,?"D:phpStudyWWWcjcooBE66.tmp");//?//写入cookie信息

????//setcookie('cookie_jar',?$cookie_jar);?//保存cookie路径

????$data?=?curl_exec($curl);?//执行????

????curl_close($curl);

????return?$data;

}

?

curl 命令详解

[TOC]

最好用登录页面测试,因为你传值过去后,回抓数据,你可以看到你传值有没有成功

用的时候,把他们cat一下就OK了, cat img.part* img.jpg

curl(7.29.0)所支持的选项(options)参数如下

引用

如何获取linux curl命令的执行结果

可以用 $? 获取上一条shell命令的返回结果。

一般的约定是: 0 表示成功,非0表示失败。

例如:你可以试验一下

执行正确的shell 命令: 执行 ls,然后紧接着 echo $?

执行错误的shell 命令: 执行 ls /abcdefg,然后紧接着 echo $?

Curl 命令

一、基础请求

1、Get 请求

命令格式: curl requesturl

例如: curl

2、Post 请求

命令格式: curl -X POST requesturl

例如: curl -X POST

二、指定ip发送请求

1、http命令格式:

curl -H 'Host:requestHost'

或 curl -x ip:port

例如:

curl -H 'Host:kunpeng.csdn.net'

curl -x '101.201.173.208:80'

2、https命令格式:

curl -H 'Host:requestHost'

或 curl ip -k

例如:

curl -H 'Host:kunpeng.csdn.net' -k

curl '101.201.173.208' -k

三、带参数的POST请求

命令格式:

1、head请求参数用 -H表示(一个横杆)

2、如果命令需要换行,在换行处加 反斜杠

3、body请求参数用 --data表示(两个横杆);请求内容有引号时,加反斜杠\

例如:

(责任编辑:IT教学网)

更多

推荐mac苹果系统文章