php - CURLOPT_RETURNTRANSFER 在 localhost 上工作但不在 php 中的实时服务器上工作
问题描述
$user_access ='example';
$user_key = 'examplekey';
$payload = json_encode($arr);
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,'example.com/api/users/2');
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($payload)));
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $payload );
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERPWD, $user_access . ":" . $user_key);
if (curl_exec($curl_handle) === FALSE) {
die("Curl Failed: " . curl_error($curl_handle));
} else {
return curl_exec($curl_handle);
};
当我删除curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
它时,它同时在本地和实时服务器上工作。我不需要自动返回 curl_exec 值,以便我使用curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
我无法确定问题。请帮我
解决方案
您应该像下面这样比较和处理;
$Result = curl_exec($curl_handle);
if($Result === false)die("Curl Failed: " . curl_error($curl_handle)); // Just an error display interceptor
return $Result; // Always return the appropriate response
在您的代码中可以确定您正在尝试将其包装在一个函数中,并且该函数应该始终返回一些内容。在这里,无论 cURL 成功还是失败,我们都会返回 $Result,您需要与调用者进行显式检查,以查看您的 cURL 方法是否有效($cURLFunctionReturnValue === false)和类似的代码。
推荐阅读
- google-apps-script - 克隆文件时如何在 Google 表格中自动执行 OAuth 请求?
- node.js - AWS Elastic Beansalk(节点环境)中的 pm2 重启循环
- python - 从python中的图像中提取波斯语/波斯语文本
- java - 为什么我的数组没有在其中添加字符?
- angular - Angular compiler.js:2175 未捕获错误:为组件指定的模板不是字符串
- c# - 如何上传文件并查看进度条?
- java - Integer.toString() 与 Integer.parseInt()
- javascript - 为什么我的 HTML 文件无法从源模块中找到 javascript 函数?
- java - 为什么我的应用程序中没有显示选项菜单?
- html - 如何修复 Flex 页脚错误 IE 11