最近项目负责人要求调接口必须用curl,这不,写一个个把
<?php
/**
* Copyright (c) 2008, ***研发中心
* All rights reserved.
*
* 名 称:
* 摘 要:
* 版 本:1.0
* @author ***
* @since 09.01.08 01:00:14
*/
/**
* class CCurl
*/
class CCurl {
protected
$url="",
$postfields=array();
private
$hd=null,
$options = array(),
$timeout = 5;
/**
* CCurl 类构造函数
* @param
*/
public function __construct($url="") {
$this->initialize($url);
}
public function __destruct(){
curl_close($this->hd);
}
/**
* function 初始化函数
* @ps
* @param $url:str 访问的url
* @return
*/
public function initialize($url)
{
$this->url = $url;
if($url)
$this->hd = curl_init($url);
else
$this->hd = curl_init();
}
/**
* function 设置url
* @ps
* @param
* @return
*/
public function setUrl($url)
{
self::setOption(CURLOPT_URL,$url);
}
/**
* function set option操作
* @ps 原始的封装
* @param $optk:option curl的option
* @param $optv:mixed 设定值
* @return Boolean
*/
public function setOption($optk,$optv)
{
$this->options[$optk] = $optv;
}
/**
* function 上传文件
* @ps
* @param
* @return
*/
public function setFile($fieldname ,$file)
{
$this->postfields[$fieldname] = "@$file";
}
/**
* function post数据
* @ps
* @param
* @return
*/
public function setPost($fieldname ,$post)
{
$this->postfields[$fieldname] = $post;
}
/**
* function get结果
* @ps
* @param
* @return
*/
public function getResult()
{
$this->options[CURLOPT_RETURNTRANSFER] = true;
$this->options[CURLOPT_TIMEOUT] = $this->timeout;
if($this->postfields)
{
self::setOption(CURLOPT_POST,true);
self::setOption(CURLOPT_POSTFIELDS,$this->postfields);
}
curl_setopt_array($this->hd, $this->options);
return curl_exec($this->hd);
}
}
$test = new CCurl("localhost/test.php?dede=asdf");
$test->setUrl("localhost/test.php?dede=1111");
$test->setFile("dll","c:/gdiplus.dll");
$test->setPost("test","asdf");
echo $test->getResult();
?>
分享到:
相关推荐
CUrlHttp封装curl类是一个基于curl库的PHP类,它为开发者提供了更加便捷的方式来执行HTTP请求,如GET、POST以及表单提交等操作。curl库是一个强大的URL传输库,广泛应用于各种网络请求任务,包括文件上传下载、网页...
在C++环境中对CURL进行封装,可以方便地在C++程序中实现网络通信功能,比如数据的获取、提交以及文件的上传和下载。本篇文章将深入探讨如何在C++中封装CURL,以及它所涵盖的关键知识点。 首先,我们需要了解CURL的...
TP5的`curl`方法封装了cURL操作,使得文件上传更加方便。以下是一个使用TP5的示例: ```php $data = [ 'file' => '@'.realpath('path/to/your/file.jpg'), ]; $result = \think\facade\Http::post('...
4. **数据发送**:对于POST请求,封装类通常会有一个方法来处理POST数据,可以接受一个关联数组,自动转换为HTTP表单格式。对于JSON或XML等数据,可能会有额外的方法来设置请求头中的Content-Type。 5. **执行请求*...
**cURL封装类详解** 在Web开发中,cURL库是一个强大的工具,它允许开发者通过命令行接口或者在编程语言中进行HTTP和其他网络协议的传输。对于PHP开发者来说,使用cURL封装类能够极大地简化与远程API交互的过程,...
使用这些封装类,你可以更轻松地进行网络请求,比如模拟登录、抓取网页内容、提交表单等操作。同时,它们还提供了一种方式来处理异常和错误,使得代码更加健壮。 在实际开发中,你还可以根据需求扩展这两个类,添加...
在PHP开发中,HTTP通信是不可或缺的一部分,而`php-httplib`是一个为开发者提供便利的工具,它基于PHP的cURL库进行了封装,旨在简化HTTP请求操作,提高开发效率。下面将详细介绍这个类库的核心功能、使用方法以及其...
为了简化cURL的使用流程,通常会将其功能封装成一个类,便于复用和维护。本文将通过分析提供的文件内容来详细介绍如何在PHP中使用cURL封装类。 #### 二、cURL模块启用与配置 首先,确保服务器已正确安装并启用了...
总结,`WWW-Curl-4.17.tar` 提供了一个方便的 Perl 模块,它封装了强大的 `curl` 功能,使 Perl 开发者能够轻松处理网络请求。无论是简单的数据获取还是复杂的网络交互,`WWW::Curl` 都能提供必要的支持。
libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同...PHP自带curl扩展,但java没有curl扩展,这个工程的目的,就是将libcurl进行封装,以jni的方式进行调用
POST请求常用于向服务器发送数据,例如在网页表单提交时,用户填写的信息会被封装到请求体中发送到服务器。与GET请求不同,POST请求的数据不会显示在URL上,而是隐藏在请求体中,这使得POST请求更适合传输敏感信息。...
这个"php的curl整合类.zip"文件提供了一个封装好的PHP类,使得开发者可以更方便地利用cURL功能,模拟各种浏览器行为,执行自动化网站操作。下面将详细阐述cURL库的原理以及如何使用这个整合类。 1. **cURL库介绍** ...
GET通常用于获取资源,而POST则常用于向服务器发送数据,如表单提交。这个库的封装使得开发者可以直接调用预定义的函数,而无需关心底层网络通信的细节。 "支持下载和上传文件功能"进一步扩展了这个库的能力。文件...
`getLastError`方法通过`curl_errno($this->_ch)`和`curl_error($this->_ch)`来获取curl执行时的错误号和错误信息,并将它们封装成一个数组返回。这可以帮助开发者在使用curl进行Web请求时,快速定位和诊断可能出现...
在给定的"php的curl登录采集的类.zip"文件中,我们可以找到一个已经封装好的PHP类,用于简化这个过程。 首先,我们来看一下`curl`函数在PHP中的应用。cURL(Client URL Library)是用于处理URLs的库,它支持多种...
我们可以使用cURL通过我们的服务器去获取其他服务器的数据,比如气象局服务器的天气预报数据、比特币交易所的交易记录数据等。 在PHP中使用cURL,需要开启curl扩展 (1) 在php.ini里面开启curl这个扩展 (2) 将...
2. **构造POST数据**:使用cURL,我们可以通过`curl_setopt()`设置`CURLOPT_POSTFIELDS`参数来传递POST数据。将用户名和密码封装为键值对,如`'username=' . urlencode($username) . '&password=' . urlencode($...
而这里的"一个CURL写的类"则是将CURL的功能封装成一个面向对象的PHP类,方便开发者进行数据采集和编码转换操作。下面我们将详细讨论这个类的可能实现和相关知识点。 首先,`Once`方法代表单个网站信息采集。在数据...
同时,为了使代码更易于管理和复用,可以封装成函数或者类,比如创建一个`CurlHelper`类,包含`downloadFile()`, `uploadFile()`, `postDataAndGetJson()`等方法。 最后,压缩包中的`ModelShell`可能是项目中的一个...
它利用libcurl库实现,这个库在C程序中常用于处理HTTP请求,而`curlpp`是libcurl的C++封装,适用于网页抓取、网络监控等开发场景。`curl`命令可以帮助解决开发过程中遇到的问题。 ### 常用参数 - `-b / --cookie ...