curl 调用jenkins的api

jenkins提供了rest api,通过调用接口,可以执行一些job的操作,如构建job ,新建job,启用禁用等操作骑车

其次curl是什么?

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。 cURL还包含了用于程序开发的libcurl。

cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。

curl还支持SSL认证、HTTP POST、HTTP PUT、FTP上传, HTTP form based upload、proxies、HTTP/2、cookies、用户名+密码认证(Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos)、file transfer resume、proxy tunneling。

可以看出curl支持http协议,所以调用jenkins的rest api是没有问题的。

接下来示例演示操作cur 对jenkins的job的启用和禁用及构建,示例中用到的jenkins url为:http://localhost:8080/jenkins/,job名称为:login,jenkins管理员账号:root, 密码:root

启用job login

curl --user root:root --data enable http://localhost:8080/jenkins/job/login/enable

禁用job login

curl --user root:root --data disable http://localhost:8080/jenkins/job/login/disable

构建job login

curl --user root:root --data build http://localhost:8080/jenkins/job/login/build

命令中–user 表示jenkins账号密码认证

执行结果如下(如果在windows下,是没有办法直接在cmd下执行curl命令,可以下git的客户端,在git bash中执行命令)

Administrator@OXPLAJ8T7PEPCDB MINGW64 ~
$ curl --user root:root  --data disable  http://localhost:8080/jenkins/job/login/disable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     7    0     0  100     7      0      7  0:00:01 --:--:--  0:00:01    56

Administrator@OXPLAJ8T7PEPCDB MINGW64 ~
$ curl --user root:root  --data enable  http://localhost:8080/jenkins/job/login/enable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     6    0     0  100     6      0      6  0:00:01 --:--:--  0:00:01    42

Administrator@OXPLAJ8T7PEPCDB MINGW64 ~
$ curl --user root:root  --data build http://localhost:8080/jenkins/job/login/build
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     5    0     0  100     5      0      5  0:00:01 --:--:--  0:00:01    35

Administrator@OXPLAJ8T7PEPCDB MINGW64 ~
$

执行后在jenkins页面查看,可以看到禁用、停用、构建job

Linux命令发送Http的get或post请求(curl和wget两种方法)

Http请求指的是客户端向服务器的请求消息,Http请求主要分为get或post两种,在Linux系统下可以用curl和wget命令来模拟Http的请求。下面就来介绍一下Linux系统如何模拟Http的get或post请求。

一、get请求

1、使用curl命令:

curl “http://www.baidu.com” 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地

curl -i “http://www.baidu.com” 显示全部信息

curl -l “http://www.baidu.com” 只显示头部信息

curl -v “http://www.baidu.com” 显示get请求全过程解析

2、使用wget命令:

wget “http://www.baidu.com”也可以

二、post请求

1、使用curl命令(通过-d参数,把访问参数放在里面):

curl -d “param1=value1¶m2=value2” “http://www.baidu.com”

  
2、使用wget命令:(–post-data参数来实现)

wget --post-data ‘user=foo&password=bar’ http://www.baidu.com

  
以上就是Linux模拟Http的get或post请求的方法了,这样一来Linux系统也能向远程服务器发送消息了。

示例:wget --post-data="" http://mcs-inner.99bill.com/mcs-gateway/mcs/task/clear

三、curl (可直接发送格式化请求例如json)

示例:目标url:http://fsc-inner.99bill.com/acs/deposit/{srcRef}

命令:curl -H "Content-type: application/json" -X POST -d '{"srcRef":"1002"}'http://fsc-inner.99bill.com/acs/deposit/1002

wget和curl设置代理服务器的命令

一、wget设置代理

eg:

wget -Y on -e "http_proxy=http://10.0.0.172:9201" "www.wo.com.cn"

此命令使用10.0.0.172:9201这个代理服务器IP和端口访问站点www.wo.com.cn

参数说明

  • -Y 是否使用代理

  • -e 执行命令

二、curl设置代理

eg:

curl -x 10.0.0.172:80 www.wo.com.cn

此命令使用10.0.0.172:80这个代理服务器IP和端口访问站点www.wo.com.cn

参数说明

  • -x 设置代理,格式为host[:port],port的缺省值为1080

Ubuntu安装php curl扩展

1、使用apt-cache搜索curl

sudo apt-cache search curl

在搜索结果里找到类似:

php5.6-curl - CURL module for PHP
php7.1-curl - CURL module for PHP

2、使用apt-get安装

选择php对应版本的curl,使用apt-get安装:

sudo apt-get install php7.1-curl

3、安装完成后重启相关服务,如php,apache

如何启用curl命令HTTP2支持

未分类

当我们直接使用 curl 去请求一个 https 页面时,默认可以看到其默认返回的是 HTTP1.1 的 response。现在使用 HTTP2 的网站越来越多,技术也越来越成熟,如何启用 curl 命令 HTTP 2 支持就成为了一个问题。

curl -I https://nghttp2.org/

未分类

当我们试图用 http2 参数时,会返回一个未支持协议的「curl: (1) Unsupported protocol」错误:

curl --http2 -I https://nghttp2.org/

未分类

使用如下命令我们可以看到 curl 版本:

curl --version

未分类

从上图中,我们可以看到当前 curl 的版本及支持的协议以及功能特性没有支持 HTTP2。

启用curl命令HTTP2支持

编译安装nghttp2

为了让 curl 支持 HTTP2 我们需要安装 nghttp2(http2 的 C 语言库):

#安装编译工具等
sudo apt-get install git g++ make binutils autoconf automake autotools-dev libtool pkg-config 
  zlib1g-dev libcunit1-dev libssl-dev libxml2-dev libev-dev libevent-dev libjansson-dev 
  libjemalloc-dev cython python3-dev python-setuptools

#编译安装nghttp2
git clone https://github.com/tatsuhiro-t/nghttp2.git
cd nghttp2
autoreconf -i
automake
autoconf
./configure
make
sudo make install

升级curl版本

cd ~
sudo apt-get build-dep curl

wget http://curl.haxx.se/download/curl-7.46.0.tar.bz2
tar -xvjf curl-7.46.0.tar.bz2
cd curl-7.46.0
./configure --with-nghttp2=/usr/local --with-ssl
sudo make && make install

echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
ldconfig

升级完版本之后,我们再查看 curl 版本时会发布特性中会增加 HTTP2 功能支持。此时 –http2 参数就可以正常使用了:

未分类

curl --http2 -I https://nghttp2.org

测试curl with http2

我们再使用如下命令测试 winclient 主页看看:

curl --http2 -I https://www.winclient.cn

返回结果如下:

未分类

curl用法:获取网站的header头及状态码 http://www.linuxidc.com/Linux/2015-11/125325.htm

设置curl和wget使用http https代理

Linux Shell 提供两个非常实用的命令来爬取网页,它们分别是 curl 和 wget

curl 和 wget 使用代理

  • curl 支持 http、https、socks4、socks5

  • wget 支持 http、https

代理示例:

#!/bin/bash
#
# curl 支持 http、https、socks4、socks5
# wget 支持 http、https
#


# http代理格式         http_proxy=http://IP:Port
# https代理格式         https_proxy=http://IP:Port

{'http': 'http://120.77.176.179:8888'}
curl -m 30 --retry 3 -x http://120.77.176.179:8888 http://proxy.mimvp.com/exist.php                    # http_proxy
wget -T 30 --tries 3 -e "http_proxy=http://120.77.176.179:8888" http://proxy.mimvp.com/exist.php          # http_proxy

{'https': 'http://46.105.214.133:3128'}
curl -m 30 --retry 3 --proxy-insecure -x http://46.105.214.133:3128 -k https://proxy.mimvp.com/exist.php                    # https_proxy
wget -T 30 --tries 3 --no-check-certificate -e "https_proxy=http://46.105.214.133:3128" https://proxy.mimvp.com/exist.php    # https_proxy


# curl  支持socks
{'socks4': '101.255.17.145:1080'}
curl -m 30 --retry 3 --socks4 101.255.17.145:1080 http://proxy.mimvp.com/exist.php

{'socks5': '82.164.233.227:45454'}
curl -m 30 --retry 3 --socks5 82.164.233.227:45454 http://proxy.mimvp.com/exist.php


# wget 不支持socks

wget 配置文件设置代理

vim ~/.wgetrc

http_proxy=http://120.77.176.179:8888:8080
https_proxy=http://12.7.17.17:8888:8080
use_proxy = on
wait = 30

wget -T 30 --tries 3 http://proxy.mimvp.com

Shell 设置临时局部代理

# proxy no auth
export http_proxy=http://120.77.176.179:8888:8080
export https_proxy=http://12.7.17.17:8888:8080

# proxy auth
export http_proxy=http://username:[email protected]:8888:8080
export https_proxy=http://username:[email protected]:8888:8080


# 取消设置
unset http_proxy
unset https_proxy

Shell 设置系统全局代理

# 修改 /etc/profile,保存并重启服务器
sudo vim /etc/profile        # 所有人有效
或
sudo vim ~/.bashrc        # 所有人有效
或
vim ~/.bash_profile        # 个人有效


# proxy no auth
export http_proxy=http://120.77.176.179:8888:8080
export https_proxy=http://12.7.17.17:8888:8080

# proxy auth
export http_proxy=http://username:[email protected]:8888:8080
export https_proxy=http://username:[email protected]:8888:8080

source /etc/profile
或
source ~/.bashrc
或
source ~/.bash_profile


sudo reboot