`

(转)curl post的问题

    博客分类:
  • PHP
阅读更多
最近用php的curl,碰到这个问题了,转之笔记之:
作者: laruence(http://www.laruence.com)
本文地址: http://www.laruence.com/2011/01/20/1840.html
转载请注明出处
在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步,

  1. 发送一个请求, 包含一个Expect:100-continue, 询问Server使用愿意接受数据  2. 接收到Server返回的100-continue应答以后, 才把数据POST给Server 这是libcurl的行为.

具体的RFC相关描述: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3

于是,这样就有了一个问题, 并不是所有的Server都会正确应答100-continue, 比如lighttpd, 就会返回417 “Expectation Failed”, 则会造成逻辑出错,,

要解决的办法也挺容易:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));          
    // Disable Expect: header (lighttpd does not support it)
分享到:
评论

相关推荐

    CURL HTTP POST方式表单递交

    1、使用的是curl库,数据采用http post方式表单递交 2、里面有完整的注释,比较规则的代码结构,适合学习交流 3、是控制台程序 4、我也是用到了curl但网上的资料大部分比较松散,我自己实现后分享给大家,相互学习,...

    PHP基于curl模拟post提交json数据示例.docx

    PHP 基于 curl 模拟 post 提交 json 数据示例 本文主要介绍了 PHP 基于 curl 模拟 post 提交 json 数据操作,通过实例形式分析了 PHP 使用 curl 实现 post 方式提交 json 数据相关操作步骤与留意事项。下面是文章的...

    Qt工程中用curl发送post请求,发送json返回json

    在Qt工程中,使用curl库发送POST请求并处理JSON数据是一项常见的任务,特别是在与Web服务交互时。这里我们将深入探讨如何实现这一功能。 首先,`curl`是一个强大的命令行工具和库,用于传输数据,支持多种协议,...

    HTTPGetPost.rar_c# post_c++ curl_curl_curl post_visual curl

    curl SSL post访问curl SSL post访问

    Curl实现Get下载zip文件、post上传zip文件、普通post请求等

    本篇将详细介绍如何利用C++结合Curl库实现GET下载ZIP文件、POST上传ZIP文件以及普通POST请求以获取JSON数据。 首先,我们要理解GET和POST在网络请求中的基本概念。GET是HTTP协议中最常见的方法,用于请求服务器发送...

    Qt工程中加入curl用于发送Post请求Get请求,数据为json格式

    qt工程中引入编译好的curl库,封装了一个类来执行post请求 可以直接拿来改造。 数据格式为json格式

    curl 实现SFTP上传和url Post Json信息

    在本教程中,我们将探讨如何利用 `curl` 实现 SFTP(Secure File Transfer Protocol)上传以及向 URL 发送 POST 和 GET 请求,并处理 JSON 数据。 ### 1. 使用 `curl` 进行 SFTP 上传 SFTP 是基于 SSH 的文件传输...

    用curl做http post

    通过`curl_easy_setopt`设置请求的URL、POST方式以及POST数据。为了获取服务器响应,我们可以设置一个回调函数`write_data`,该函数会在接收到数据时被调用。最后,执行请求并检查返回的错误代码。 需要注意的是,...

    c++封装curl,实现get,post,download

    本篇将深入探讨如何在C++中封装libcurl,实现GET、POST请求以及文件下载功能。 首先,我们从`curlpp`这个库开始。`curlpp`是libcurl的一个C++包装器,它提供了更方便、面向对象的API,简化了与libcurl的交互。要...

    CURLget|post请求封装

    调用微信公众平台接口 需要用到CURL(相当于ajax) 访问接口返回数据 页面不刷新 此文件封装了调用curl执行get|post请求 返回相应的数据

    curl发送post请求

    `用curl发post请求.txt`可能包含了更多关于如何构造和发送POST请求的实际示例,学习这个文件可以帮助进一步掌握curl的用法。总的来说,理解和熟练使用curl进行POST请求是每个IT专业人员,尤其是开发者和系统管理员的...

    C++ 实现 HTTP HTTPS POST GET(包含curl版本和winhttp两种实现)

    C++ 实现 HTTP HTTPS POST GET(包含curl版本和winhttp两种实现)。 玩过抓包,网络协议分析的朋友肯定都知道http https post get,web端和用户的交互主要是通过post get完成的。 我这里有两种实现: 1:libcurl实现的...

    Go-golang版本的curl请求库

    在上述代码中,`curl.NewRequest()`创建了一个请求对象,通过设置`URL`、`Method`、`Header`和`Body`属性,我们可以构建一个完整的POST请求。`req.Send()`方法负责发送请求并获取响应。 在`go-curl-master`这个...

    php curl远程post上传

    php curl远程post上传

    c++ curl multi http post 方式 并发 异步 vs2008

    基于libcurl官网demo,实现http post 并发 ...以文件为介质保存post参数,执行后,将失败链接的参数回存此文件。HandleCurlMulti 以轮询方式进行,可以设置每次的吞吐量。待优化的地方为文件存储,如果多线程需要加锁。

    curl模拟post类必须精品

    curl模拟post跨域提交数据 包括cookie,agent

    HTTP HTTPS POST GET(包含curl版本和winhttp两种实现)

    玩过抓包,网络协议分析的朋友肯定都知道http https post get,web端和用户的交互主要是通过post get完成的。 我这里有两种实现: 1:libcurl实现的CHttpClient类,该类实现了Htpp和Https的get post方法。 2:...

    PHP基于curl post实现发送url及相关中文乱码问题解决方法

    本篇文章将详细解析如何使用PHP的cURL库来正确地发送POST请求,并解决中文乱码的问题。 首先,我们来看一个简单的PHP cURL POST请求示例: ```php $url = 'http://example.com/api'; // 调用接口的平台服务地址 $...

    api.rar_definitionwir_后台curl模拟post 调接口

    本主题主要关注如何在后台使用curl命令来模拟POST请求,以便调用API接口。curl是一个强大的命令行工具,常用于在终端中传输数据到服务器或者从服务器获取数据。 首先,我们需要理解什么是`definitionwir`,这可能是...

Global site tag (gtag.js) - Google Analytics