编辑........
这不是发布的问题。 @ miken32更改了上下文,谢谢。看来这样做是为了使同一个人可以说这是“相似”问题的重复,但事实并非如此。合理的做法是,在尝试进行B部分之前,先确保正确地执行A部分,这也可能导致C部分。
建议的“ duplicte”不包含完整的答案,就像我最初在原始帖子中表达的相同问题一样。已经被编辑死了。没有一个示例显示我看到其中包含POST命令。答案不完整。它不是对cURL POST的答复,并且代码的结构有些不同。如果我是专家,我不会问!当然,我可以得到答复,但需要我的POST答复。
在我的原始问题中删除一半或更多的文本是没有逻辑的,无论您有多少要点。实际上,剩下的已经完全改变了问题,并且在继续进行B部分之前并没有帮助我确保A部分是正确的。甚至还有关于标题不正确的答复,但是帖子的那一部分现在已被删除。显然,该帖子是在编辑之前发布的。现在剩下的似乎是无关紧要的答复。哦,再次感谢。
我要求无论这样做的人是谁,都要对发贴人多一些体贴,而不要问您想成为什么样的人。
我想我将在stackanything或serveranything上减少发布,而在其他地方发布更多。这不是第一次,而且完全不尊重原始帖子!
我希望在这里找到一些指导,但只会感到沮丧。
编辑........................................
我是。尝试将文件上传到以HTTP 201 Created
消息和Location
标头响应的页面。我需要获取该标头的值。
$request = curl_init('http://localhost:80/eSCL/ScanJobs');
// send a file
curl_setopt($request, CURLOPT_POST, true);
curl_setopt(
$request,
CURLOPT_POSTFIELDS,
array(
'file' => '@' . realpath('ScanSettings.xml')
));
// output the response
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($request);
// close the session
curl_close($request);
这行得通,但没有得到我想要的标题值。
答案 0 :(得分:0)
您的header函数对其参数使用的语法不正确。第二个参数是$replace
(布尔,默认为true
),它指示是否应覆盖现有的标头
header('HTTP/1.1 201', 'Created');
应该是:
header('HTTP/1.1 201 Created');
如果要读取带有curl的标题,则必须激活该选项:
curl_setopt($request, CURLOPT_HEADER, 1);
然后,您必须在调用curl_exec
之后从返回的数据中过滤标题:
$response = curl_exec($request); // don't echo directly, we need that data filtered!
$header_size = curl_getinfo($request, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);