curl 第十三课 Content-Length的添加机制

场景说明

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Length Required</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Length Required</h2>
<hr><p>HTTP Error 411. The request must be chunked or have a content length.</p>
</BODY></HTML>


分析

    说明发送的报文中没有携带Content-Length,但是发送的报文中实体其实是0字节的


原因

    libcurl库只有在调用curl_easy_setopt(pCurlHandle, CURLOPT_POSTFIELDS, "");,才会去自动生成Content-Length


解决方案一 手动指定Content-Length  pCurlHeadList = curl_slist_append(pCurlHeadList, "Content-length: 0");

解决方案二 curl_easy_setopt(pCurlHandle, CURLOPT_POSTFIELDS, "");

    

上一篇:PHP cURL 超时设置 CURLOPT_CONNECTTIMEOUT 和 CURLOPT_TIMEOUT 的区别


下一篇:PHP实现微信退款功能