Curl库加wireshark抓取表单并模拟web的post方法
来源:互联网 发布:ubuntu压缩zip文件 编辑:程序博客网 时间:2024/05/29 23:23
本文概述:
本文将简要介绍wireshark抓包web数据以及模拟post、get方法。
在当下的各种应用中,在web方面,很多功能会经常使用到post以及getweb方法。
其中有这样一种情况,在我们的产品或者项目中,供应商提供了web的应用界面,可以控制,但是我们需要将这样的应用做到自己的app中,这样的话,如果获得web功能对应url、post数据、以及模拟方法成为关键。
本文将简要介绍这种抓包web数据以及模拟post、get方法。本文出自csdn-固本培元--leoluopy@gmail.com。
开始:
wireshark抓包
打开wireshark后,选择对应网卡,将获取很多数据,filter填写http过滤其他数据。当点击你想要模拟的post表单后,post的网络数据就被wireshark捕获了。当然由于数据很多,需要点击 Info 按钮 排序,这样更好找到对应捕获的post数据。如下图所示,数据以及相对于的http头协议信息。
在抓取到如上图信息后,展开Hypertext Transfer Protocl 以及 Line-based text data.
如下图所示。你就可以看到对应的url以及post的真实数据。他们就是我们下文需要模拟发送的地址以及模拟数据了。
下载编译curl,编写模拟函数
仅仅抓到数据包以及获取对应的url地址还不足够,我们还需要得到对应的模拟方法。目前参考方法很多。有Qt的网络库,有MFC对应的http接口,还有很多对应方法。就笔者而言,认为linux开源组织的curl一套方案,简单高效,可移植性高。因此选择了这种方法。如下,是笔者封装的curl发送post方法的接口。
当然了,在这之前,你需要下载curl库,编译他,然后在你的工程中载入curl库以及头文件。都是很简单的过程,这里不再阐述。祝你好运。本文出自csdn-固本培元。
#include <string.h>#include <stdio.h>#include <curl/curl.h>int CurlPost(const char* url,const char* usr,const char *password,const char* data){ CURL *curl; CURLcode res; char auth[200];memset(auth,0,200); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL,url ); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookies.txt"); strcat(auth,usr); strcat(auth,":"); strcat(auth,password); curl_easy_setopt(curl, CURLOPT_USERPWD, auth); /* Now specify the POST data */ curl_easy_setopt(curl, CURLOPT_POSTFIELDS,data ); /* Perform the request, res will get the return code */ res = curl_easy_perform(curl); /* Check for errors */ if(res != CURLE_OK){ printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"); fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } /* always cleanup */ curl_easy_cleanup(curl); } return 0;}
2 0
- Curl库加wireshark抓取表单并模拟web的post方法
- CURL模拟POST提交的方法
- CURL 抓取网页内容,模拟post
- PHP利用CURL方法模拟POST提交数据并获得返回值的小细节
- PHP CURL模拟表单post提交文件,curl POST文件
- curl模拟post进行表单提交
- curl 模拟POST方法 发送数据
- PHP模拟POST提交数据并获得返回值之CURL方法
- Linux下使用CURL模拟用户提交post表单
- PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
- PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
- PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
- PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
- PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
- CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)
- CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)
- 模拟浏览器的POST表单
- 初始化一个新的cURL辉煌并抓取一个web页面。
- Cocos2dx通信(Http&Socket)相关编译到Android细节总结 编译加入curl关联lib与头文件 && 解决pthread的cancel函数NDK不支持,找不到sockaddr_in
- 满满的爱
- 关于IE11,我们所知道的以及我们所能预料到的 document.all不支持 ?
- MyBatis Mapper 文件例子
- 关于more标签
- Curl库加wireshark抓取表单并模拟web的post方法
- freemarker编写自定义标签
- java 线程死锁模拟
- 程序员浪费生命的几种方式
- 物联网十二五规划,智能家居前景广阔
- WP8 电话本编程
- UnicodeEncodeError: 'gbk' codec can't encode character
- ffmpeg2.1 install centos5.1
- PL/SQL 表函数, Cursor Variable, pipelined table function