PHP curl_exec 返回 HTTP/1.1 100 Continue 和 HTTP/1.1 200 OK,以空格分隔
2022-08-30 16:11:26
我使用cURL从PHP调用服务,如下所示:
$response = curl_exec($ch);
并且请求/响应标头如下所示:
请求:
POST /item/save HTTP/1.1
Host: services.mydomain.com
Accept: */*
Content-Length: 429
Expect: 100-continue
Content-Type: multipart/form-data
响应:
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Date: Fri, 06 Jul 2012 08:37:01 GMT
Server: Apache
Vary: Accept-Encoding,User-Agent
Content-Length: 256
Content-Type: application/json; charset=utf-8
后跟正文(json 编码数据)。
问题是,常见的事情是通过遇到的第一个空行在响应中拆分标头和正文,除了在这种情况下,空行在后面,因此其他所有内容都被推入正文 - 这不再是有效的json:-)100 Continue
所以我的问题是:处理这个问题的常用方法是什么?我有3个选项:
- 指定卷曲不应该期望 ?(如何?
100-continue
- 指定 curl 只应发回上次响应的标头?(如何?
- 手动检查标头并忽略它们及其后面的空行?(在这种情况下,是否还有其他类似的事情可能发生,我应该手动检查?
100 Continue
除非我错过了一些明显的东西,否则我相信人们已经偶然发现了这一点,并解决了很多次!