使用 curl 调接口时需要注意事项
2015-10-13 11:05
761 查看
1、在调用时需要对各个参数进行 urlencode;
2、注意 header 参数,首先我们使用 postman 工具调用一下这个接口,并获取其 request 的 header 将有用的 header 用起来(多试几次);
3、注意不同版本的 php 文件上传是需要的配置。
代码分析
2、注意 header 参数,首先我们使用 postman 工具调用一下这个接口,并获取其 request 的 header 将有用的 header 用起来(多试几次);
3、注意不同版本的 php 文件上传是需要的配置。
代码分析
/** * 注意:1、参数除了文件都要 urlencode 一下;2、注意header;3、curl_file_create 函数 * @param $File 文件路径 * @param int $Level * @param string $convertType * @return bool */ public static function file2jpeg($File,$Level = 2,$convertType = "GHOSTSCRIPT" ){ $FileName = urlencode(basename($File)); $url = "http://******"; $curl = \Request::forge($url, 'curl'); \Fuel\Core\Log::debug("url1 = [ $url ]"); // 有用的 header $header = array ( "User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36", ); // 所需的参数 $field = array( 'File' => Service_Util::curl_file_create($File), 'Level' => urlencode($Level), "convertType"=>urlencode($convertType), "FileName" => urlencode($FileName) ); \Fuel\Core\Log::debug("url2 = [ $url ]"); // 配置 $curl->set_options(array( CURLOPT_RETURNTRANSFER=>1, CURLOPT_POST=>true, CURLOPT_HTTPHEADER => $header, CURLOPT_POSTFIELDS=>$field, CURLOPT_INFILESIZE=>filesize($File) )); $result = $curl->execute(); $dir = \Fuel\Core\Config::get('file_store_dir'); $path = Service_Util::getName($dir."/".$field['FileName']); file_put_contents($path.".zip",$result); return true; } /** * 去除文件后缀 * @param $fileName 文件 */ public static function getName($fileName){ $index = strrpos($fileName,"."); if ($index>0){ return substr($fileName,0,$index); } return $fileName; } /** * curl 文件上传兼容函数 * @param $filename * @param string $contentType * @return CURLFile|string */ public static function curl_file_create($filename, $contentType = '') { if (function_exists('curl_file_create')) { return curl_file_create($filename, $contentType, basename($filename)); } $value = "@{$filename};filename=" . basename($filename); if ($contentType) { $value .= ';type=' . $contentType; } return $value; }
相关文章推荐
- VBS模拟POST上传文件的代码
- php下目前为目最全的CURL中文说明
- PHP curl_setopt()函数实例代码与参数分析
- php采用curl访问域名返回405 method not allowed提示的解决方法
- php中file_get_content 和curl以及fopen 效率分析
- php中curl和file_get_content的区别
- php实现curl模拟ftp上传的方法
- PHP使用CURL实现多线程抓取网页
- eWebEditor 上传文件提示格式不正确的解决方法
- 利用curl 多线程 模拟 并发的详解
- 在PHP中使用curl_init函数的说明
- 使用php方法curl抓取AJAX异步内容思路分析及代码分享
- 利用curl抓取远程页面内容的示例代码
- 开启CURL扩展,让服务器支持PHP curl函数(远程采集)
- 使用curl递归下载软件脚本分享
- PHP 获取远程网页内容的代码(fopen,curl已测)
- php上传文件的增强函数
- PHP中让curl支持sock5的代码实例
- is_uploaded_file函数引发的不能上传文件问题
- 如何限制asp.net中上传文件的大小的代码