关于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,通过比对包的不同可以轻松解决碰到的各种问题。

时间: 2024-10-29 19:12:17

关于libcurl模拟提交form的相关文章

通过C#的HttpClient模拟提交form()表单

post提交表单一般无非是一般text文本和文件类型,如下 <input type="file"/> <input type="text"/> 如果模拟post提交表单的过程,该怎么做呢 这里就需要用到HttpClietn类 首先我们需要一个类去包装这些需要上载的数据,例如 /// <summary> /// 包装Data数据的Model /// </summary> public class SendData { /

.Net模拟提交表单

2016-09-0210:49:20 以中邮速递API为服务接口,由于提交方式为表单提交,我要获取返回值来处理其他业务,所以一开始尝试采用Js后台获取返回值,但是涉及到跨域请求限制问题,那边服务端接口返回的是json而不能处理jsonp:所以开始着手考虑后台模拟提交表单: 网上开始查资料,对于后台提交表单的一些相关资料: 表单提交协议规定: 对于含文件的表单提交,要先将 HTTP 要求的 Content-Type 设为 multipart/form-data,而且要设定一个 boundary 参

jQuery ajax()使用serialize()提交form数据

Query的serialize()方法通过序列化表单值,创建URL编码文本字符串,我们就可以选择一个或多个表单元素,也可以直接选择form将其序列化,如: <form action=""> First name: <input type="text" name="FirstName" value="Bill" /><br /> Last name: <input type="

Jquery提交form表单

前台代码 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Js_submit.aspx.cs" Inherits="Ctrip.Corp.Report.OfflineSite.CorpReportSetting.Js_submit" %> 2 3 <html xmlns="http://www.w3.org/1999/xhtml

关于chrome下input中Enter的keydown事件会自动提交form的疑问与解决

当页面有<form>操作时,浏览器会有默认的响应enter键就提交form表单. 看html代码 <form action="http://www.7k7k.com"> <input type="text"> 当你在input框里输入后,按enter键,就会默认提交form, 但实际需求并不是这样的,比如在input输入时会有弹出的suggestion选项让用户选择,用户按了enter键后并不想直接提交,所以需要在部分逻辑下需要取

使用ajax提交form表单,包括ajax文件上传 转http://www.cnblogs.com/zhuxiaojie/p/4783939.html

使用ajax提交form表单,包括ajax文件上传 前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },"json"); 又或者是这样的ajax $.ajax({ url:"${pageContext.request.contextPath}/public/testupload", type:"post", data:{username:username},

html 标签: image也能提交form!!!

html 标签: image也能提交form!!! image也能提交form 先前经常使用"<input type="submit" value="input_submit"/>" 来提交form 今天在项目中进行开发的过程中有这么一个功能: 点击"XXX"按钮,进行form表单的提交,但是这个提交按钮是一个type="image" 的input: 找了半天也没看到这个图片元素绑定的js提交表

按下回车默认提交form表单问题

最近开发中碰到一个问题,项目中有几个列表展示页面,允许用户通过查询条件模糊查询数据.用户录入关键字后点击回车会调用查询方法根据关键字查询,原先功能没有问题,但是最近发现在查询输入框中按下回车会直接刷新页面不调用查询方法.检查发现有人在查询模块新增了一个form表单,找了很多和form表单相关资料才发现当form表单内只有一个type="text"类型的<input>标签时按下回车默认会提交form表单.解决方法很简单就是在form表单内新增一个隐藏的type="t

通过php jq ajax 提交form表单

参考http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0619/13568.html html <div id="contact_form"> <form name="contact" method="post" > <label for="name" id="name_label">姓名</label