关于libcurl模拟提交form

Posted 编程老菜B

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于libcurl模拟提交form相关的知识,希望对你有一定的参考价值。

因为本人对web机制了解较少,在使用C/libcurl中遇到了很多问题。主要的解决方式:

1,在网页源码中找到提交form的定位。也就是网页文件对应form中的action属性。往往都是提交到jsp或者php等脚本中运行的,而不是直接提交到本网页。

2,要注意http头http头的不同会引起网页的不同反应。我做的一个小项目,在提交到两个网址php脚本时,都因为http头引起php脚本执行不正确。

3,重定向问题。

  在一些网页中,返回的网页数据会带有重定向信息,这时要打开curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, true);

  以我目前掌握的,这个参数会自动跟踪http头中的重定向。这里之所以要打开,是因为重定向有一个超时参数,如果未能链接,

  也会导致网页执行出现问题。

4,关于https,在编译libcurl的时候要加入openssl的支持。

5,在代码中加入curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);可以追踪数据的传输状态。

6,如果还是解决不了,使用Fiddler抓包。相比wireshark,Fiddler抓取https的包更加方便和快捷。

 

最后再强调一下第六条:Fiddler可以更方便地抓https,通过比对包的不同可以轻松解决碰到的各种问题。

以上是关于关于libcurl模拟提交form的主要内容,如果未能解决你的问题,请参考以下文章

关于libcurl库如何在ftp上创建文件和文件夹

关于在Windows XP Server 2003下使用libcurl库的一些问题 附编译好的libcurl下载 和使用libcurl访问百度的例子工程

apipost怎么模拟表单提交下载功能

如何使用 libcurl 进行 HTTP 发布?

libcurl 使用

curl模拟http请求