curl网站开发指南

news/2024/5/13 1:23:25/文章来源:https://blog.csdn.net/weixin_34015860/article/details/86076554

转载 http://www.ruanyifeng.com/blog/2011/09/curl.html 

   我一向以为,curl只是一个编程用的函数库。

最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法。

===================================

curl网站开发指南

阮一峰 整理

curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。

它支持多种协议,下面举例讲解如何将它用于网站开发。

一、查看网页源码

直接在curl命令后加上网址,就可以看到网页源码。我们以网址www.sina.com为例(选择该网址,主要因为它的网页代码较短):

  curl www.sina.com

  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  <html><head>
  <title>301 Moved Permanently</title>
  </head><body>
  <h1>Moved Permanently</h1>
  <p>The document has moved <a href="http://www.sina.com.cn/">here</a>.</p>
  </body></html>

如果要把这个网页保存下来,可以使用-o参数,这就相当于使用wget命令了。

  curl -o [文件名] www.sina.com

二、自动跳转

有的网址是自动跳转的。使用-L参数,curl就会跳转到新的网址。

  curl -L www.sina.com

键入上面的命令,结果就自动跳转为www.sina.com.cn。

三、显示头信息

-i参数可以显示http response的头信息,连同网页代码一起。

  curl -i www.sina.com

  HTTP/1.0 301 Moved Permanently
  Date: Sat, 03 Sep 2011 23:44:10 GMT
  Server: Apache/2.0.54 (Unix)
  Location: http://www.sina.com.cn/
  Cache-Control: max-age=3600
  Expires: Sun, 04 Sep 2011 00:44:10 GMT
  Vary: Accept-Encoding
  Content-Length: 231
  Content-Type: text/html; charset=iso-8859-1
  Age: 3239
  X-Cache: HIT from sh201-9.sina.com.cn
  Connection: close

  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  <html><head>
  <title>301 Moved Permanently</title>
  </head><body>
  <h1>Moved Permanently</h1>
  <p>The document has moved <a href="http://www.sina.com.cn/">here</a>.</p>
  </body></html>

-I参数则是只显示http response的头信息。

四、显示通信过程

-v参数可以显示一次http通信的整个过程,包括端口连接和http request头信息。

  curl -v www.sina.com

  * About to connect() to www.sina.com port 80 (#0)
  * Trying 61.172.201.195... connected
  * Connected to www.sina.com (61.172.201.195) port 80 (#0)
  > GET / HTTP/1.1
  > User-Agent: curl/7.21.3 (i686-pc-linux-gnu) libcurl/7.21.3 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
  > Host: www.sina.com
  > Accept: */*
  > 
  * HTTP 1.0, assume close after body
  < HTTP/1.0 301 Moved Permanently
  < Date: Sun, 04 Sep 2011 00:42:39 GMT
  < Server: Apache/2.0.54 (Unix)
  < Location: http://www.sina.com.cn/
  < Cache-Control: max-age=3600
  < Expires: Sun, 04 Sep 2011 01:42:39 GMT
  < Vary: Accept-Encoding
  < Content-Length: 231
  < Content-Type: text/html; charset=iso-8859-1
  < X-Cache: MISS from sh201-19.sina.com.cn
  < Connection: close
  < 
  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  <html><head>
  <title>301 Moved Permanently</title>
  </head><body>
  <h1>Moved Permanently</h1>
  <p>The document has moved <a href="http://www.sina.com.cn/">here</a>.</p>
  </body></html>
  * Closing connection #0

如果你觉得上面的信息还不够,那么下面的命令可以查看更详细的通信过程。

  curl --trace output.txt www.sina.com

或者

  curl --trace-ascii output.txt www.sina.com

运行后,请打开output.txt文件查看。

五、发送表单信息

发送表单信息有GET和POST两种方法。GET方法相对简单,只要把数据附在网址后面就行。

  curl example.com/form.cgi?data=xxx

POST方法必须把数据和网址分开,curl就要用到--data参数。

  curl --data "data=xxx" example.com/form.cgi

如果你的数据没有经过表单编码,还可以让curl为你编码,参数是--data-urlencode。

  curl --data-urlencode "date=April 1" example.com/form.cgi

六、HTTP动词

curl默认的HTTP动词是GET,使用-X参数可以支持其他动词。

  curl -X POST www.example.com

  curl -X DELETE www.example.com

七、文件上传

假定文件上传的表单是下面这样:

  <form method="POST" enctype='multipart/form-data' action="upload.cgi">
    <input type=file name=upload>
    <input type=submit name=press value="OK">
  </form>

你可以用curl这样上传文件:

  curl --form upload=@localfilename --form press=OK [URL]

八、Referer字段

有时你需要在http request头信息中,提供一个referer字段,表示你是从哪里跳转过来的。

  curl --referer http://www.example.com http://www.example.com

九、User Agent字段

这个字段是用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同设备,返回不同格式的网页,比如手机版和桌面版。

iPhone4的User Agent是

  Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7

curl可以这样模拟:

  curl --user-agent "[User Agent]" [URL]

十、cookie

使用--cookie参数,可以让curl发送cookie。

  curl --cookie "name=xxx" www.example.com

至于具体的cookie的值,可以从http response头信息的Set-Cookie字段中得到。

十一、增加头信息

有时需要在http request之中,自行增加一个头信息。--header参数就可以起到这个作用。

  curl --header "xxx: xxxxxx" http://example.com

十二、HTTP认证

有些网域需要HTTP认证,这时curl需要用到--user参数。

  curl --user name:password example.com

【参考资料】

  * Using cURL to automate HTTP jobs

  * 教你学用CURL

  * 9 uses for cURL worth knowing

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_766062.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET MVC5 网站开发实践(二) Member区域 - 修改及删除文章

上次做了显示文章列表&#xff0c;再实现修改和删除文章这部分内容就结束了&#xff0c;这次内容比较简单&#xff0c;由于做过了添加文章&#xff0c;修改文章非常类似&#xff0c;就是多了一个TryUpdateModel部分更新模型数据。 目录&#xff1a; ASP.NET MVC5 网站开发实践 …

ASP.NET MVC5 网站开发实践(二) Member区域–管理列表、回复及删除

本来想接着上次把这篇写完的&#xff0c;没想到后来工作的一些事落下了&#xff0c;放假了赶紧补上。 目录&#xff1a; ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一) - 项目框架 ASP.NET MVC5 网站开发实践(一) - 框架&#xff08;续&#xff09; 模型、数…

网站创建自定义百度地图

第一步&#xff1a;百度搜索“创建地图-百度地图生成器”或者直接点击链接&#xff1a;http://api.map.baidu.com/lbsapi/creatmap/&#xff0c;打开页面 如下图所示&#xff1a; 第二步&#xff1a;输入你要查找的地址名称&#xff0c;点击查找&#xff0c;如下图所示&#xf…

【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo...

【网站国际化必备】Asp.Net MVC 集成Paypal&#xff08;贝宝&#xff09;快速结账 支付接口 &#xff0c;附源码demo 原文:【网站国际化必备】Asp.Net MVC 集成Paypal&#xff08;贝宝&#xff09;快速结账 支付接口 &#xff0c;附源码demo开篇先给大家讲段历史故事&#xff0…

记录支付宝SDK网站支付的对接

说明&#xff1a;此方法仅用SDK的对接 没有使用官方提供的demo 官方SDK的下载地址&#xff1a;https://github.com/alipay/alipay-sdk-php-all 使用框架&#xff1a;thinkphp5.0.24 将支付宝sdk放入框架extend(第三方扩展库)\alipay文件中&#xff1b; 对接SDK的三步曲&#xf…

今天我发现了一个网站有很多的html5手机wap网站模板,在这里分享一下

手机wap静态网页模版仿中国新闻网微官网山东红十字会医院3g手机版网站模版html制作***3G静态wap网站模版html仿南通和美家***网站静态模版参考3g手机网站模版仿广州曙光***3g手机网页模版仿北京航空466医院手机WAP站点3G wap妇科医院网站模板仿北京艾丽斯妇科医院3G手机静态模版…

songtaste网站歌曲真实URL获取

个人挺喜欢songtaste网站的歌曲的&#xff0c;下载方法也层出不穷&#xff0c;可是作为程序员如果不知其中原理的方法真是羞愧。首先简单点的方法当然有google插件这样的嗅探器了&#xff0c;不过这种工具的原理还不是很了解。今天先总结一下songtaste网站部分歌曲的真实下载链…

单页面应用SEO 和 pushstate

2019独角兽企业重金招聘Python工程师标准>>> ----------------引子----------------- 单页应用的优点 跨平台开发&#xff0c;更好的用户体验&#xff0c;让用户在web感受natvie的速度和流畅&#xff1b;经典MVC开发模式&#xff0c;前后端各负其责。一套Server API…

117work 网站开发 21 简洁版侧边栏开发设置 ,附录代码

相对简单了&#xff01;就要快速的捋一遍基本概念&#xff0c;然后就可以正式进入开发行业的了&#xff01;实现梦想的行业&#xff01; 进军大公司的机会&#xff01; 快速提高开发技术&#xff01;&#xff01;&#xff01; 代码效果图 <!DOCTYPE html> <html lan…

浮动-网站开发 基础知识点

编程月度总结&#xff0c;周更新 还是基础太弱&#xff0c;基础弱是开发的弱点&#xff01;项目也更是很少&#xff01;只能一方面不断的复习基础&#xff0c;一方面写项目&#xff0c;增加项目才行&#xff01; <!DOCTYPE html> <html lang"en"> &l…

网站中最简单的盒子,写法

最简单的盒子&#xff0c;写法 效果图 &#xff0c;这是2个盒子的建立。 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" content"IEedge"> &l…

网站应用微信登录功能接口开发指南

2019独角兽企业重金招聘Python工程师标准>>> 准备工作 网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。在进行微信OAuth2.在进行微信OAuth2.0授权登录接入之前&#xff0c;在微信开放平台注册开发者帐号&#xff0c;并拥有一个已审核通过的…

SSM新闻网站

0、demo链接 链接&#xff1a;https://pan.baidu.com/s/1m7yLJvPg_JTedK5Dg43JXQ 提取码&#xff1a;hmia 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 1、SSM概述 SSM框架&#xff0c;即Spring Spring MVC MyBatis的缩写 1.Spring简介 Spring是一个开源框架…

CSS鼠标滑过变化颜色的设置,网站设置(一看就懂)

效果: 本身颜色为蓝色,鼠标放上后变为红色。 代码 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><…

网站+小程序项目实战案例1 数据库与网站展示关系以及C#基础知识点2()

1 数据库 2 C# 3 vue 1 数据库的还没有创建,,,,,ask过了,先看后面的了。 数据库与网页展示的关系。 犹如面粉与面头的关系。 客户要的是馒头,可不是面粉哦! 您要干的活,就是把面粉经过几道工序,加工出来成馒头的活。 服务项目的数据库, 数据。 与网页展示效果。…

网站+小程序项目实战案例1 vue 知识点3(一看就懂)

#功能整理 首页 装修案例&#xff1a;办公室装修&#xff0c;酒店滨片类、教育机构类&#xff0c;餐饮类、诊所类&#xff0c;商铺类 服务项目&#xff1a;办公室装修&#xff0c;酒店滨片类、教育机构类&#xff0c;餐饮类、诊所类&#xff0c;商铺类 装修攻略&#xff1a;设…

成功回调_qq互联平台配置网站回调域避免出现“redirect uri is illegal(100010)”

qq互联平台配置网站回调域避免出现“redirect uri is illegal(100010)”&#xff0c;通过腾讯开放平台在线解码工具&#xff0c;解决qq互联平台配置网站回调域配置问题。大家在配置qq互联平台网站回调域的时候可能会出现的情况&#xff0c;切图&#xff1a;我通过搜索“在线解码…

Win7下用IIS发布网站

安装IIS控制面板->程序->程序和功能&#xff0c; 点击左侧的“打开或关闭Windows功能”把这几项都勾上吧&#xff0c;虽然有些不是必须的&#xff0c;多勾无碍。进入IIS管理器控制面板-> 系统和安全->管理工具->IIS管理器添加新网站在左侧栏中&#xff0c;右键“…

CentOS系统中基于Apache+php+mysql的许愿墙网站的搭建

1.首先&#xff0c;我们需要两台虚拟机&#xff08;CentOS7,Linux文本&#xff09;。 2.给两台虚拟机配置网络环境分别为桥接模式 CentOS7 ip为192.168.100.137、24&#xff0c;linux文本ip为192.168.100.237/24&#xff0c;然后各自配置yum源配置文件&#xff08;http://www.c…

python网站攻击脚本_python自动化脚本工具攻击触发技能

这点代码将会找到Outlook信箱中的附件&#xff0c;并把它们保存至 "C:\temp\OutlookAttachments"&#xff0c;它没有错误处理所以请小心使用 查找了一下资料&#xff0c;发现出现Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: …