PHPackages                             cdcchen/http-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. cdcchen/http-client

ActiveLibrary[HTTP &amp; Networking](/categories/http)

cdcchen/http-client
===================

http client

1.0.9(8y ago)1651BSD-4-ClausePHPPHP &gt;=7.1.0

Since Oct 16Pushed 8y ago1 watchersCompare

[ Source](https://github.com/cdcchen/http-client)[ Packagist](https://packagist.org/packages/cdcchen/http-client)[ Docs](https://github.com/cdcchen/http-client)[ RSS](/packages/cdcchen-http-client/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (2)Versions (10)Used By (1)

CURL Http Client
================

[](#curl-http-client)

composer 安装
-----------

[](#composer-安装)

```
composer require cdcchen/curl-client:^1.0.0

```

使用教程
----

[](#使用教程)

### 第一步：实例化`HttpRequest`

[](#第一步实例化httprequest)

```
$request = new HttpRequest();
$request->setUrl('http://www.baidu.com')
```

### 第二步：发起请求

[](#第二步发起请求)

```
$response = $request->send();
```

### 第三步：获取返回相关数据

[](#第三步获取返回相关数据)

返回的`$response`类型为`HttpResponse`。`HttpResponse`会自动根据返回的`Content-Type`解析返回的数据。目前支持以下格式：

- HttpRequest::FORMAT\_JSON
- HttpRequest::FORMAT\_XML
- HttpRequest::FORMAT\_URLENCODED
- HttpRequest::FORMAT\_RAW\_URLENCODED

如果已经明确知道返回数据的格式，也可以显式的指定`$response`的format属性：

```
$response->setFormat(HttpRequest::FORMAT_JSON);
```

然后可以直接通过`$response->getData()`来获取到解析之后的数据。

#### 获取 Status Code

[](#获取-status-code)

```
$response->getStatus()
```

#### 获取原始 body 数据：

[](#获取原始-body-数据)

```
$response->getContent();
```

#### 获取返回的 Headers

[](#获取返回的-headers)

```
$response->hasHeader($name);
$response->getHeader($name);
$response->getHeaders();
```

#### 获取 Cookies

[](#获取-cookies)

```
$response->getCookies();
```

设置超时时间
------

[](#设置超时时间)

```
$request->setConnectTimeout($value, $ms = false);
$request->setTimeout($value, $ms = false);
```

设置 HttpRequest 请求
-----------------

[](#设置-httprequest-请求)

### 设置请求方法

[](#设置请求方法)

```
$request->setMethod('post');
```

### 设置请求参数

[](#设置请求参数)

```
$request->setData(array $data);
```

### 设置post body

[](#设置post-body)

```
$request->setContent($content);
```

### 设置Header

[](#设置header)

```
$request->addHeader($name, $value);
$request->addHeaders($headers);
$request->removeHeader($name);
$request->clearHeaders();
```

### Header shortcut

[](#header-shortcut)

```
$request->setReferrer($referrer = true);
$request->setBasicAuth($username, $password);
$request->setUserPassword($username, $password);
$request->setUserAgent($agent);
$request->setFollowLocation($value = true, $maxRedirects = 5);
$request->setVersion($version);
$request->setAcceptEncoding($value);

```

### 设置Cookies

[](#设置cookies)

```
$request->addCookie($name, $value);
$request->addCookies($cookies);
$request->setCookieFile($file, $jar = null);
```

### 使用SSL

[](#使用ssl)

```
$reqeust->setSSL($peer = false, $host = 2, array $extraOptions = []);
```

### 上传文件

[](#上传文件)

```
$request->addFile($input_name, $file, $mime_type = null, $post_name = null);
$request->addFiles($input_name, array $files, $mime_type = null, $post_name = null);
$request->clearFiles();
```

> $file 可以为文件路径，也可以为CURLFile实例。

### 设置发起请求时body的格式化方式

[](#设置发起请求时body的格式化方式)

```
$request->setFormat($value);
```

`request`会自动根据format的值来格式化`data`

`format`的取值如下：

- HttpRequest::FORMAT\_URLENCODED 默认
- HttpRequest::FORMAT\_RAW\_URLENCODED
- HttpRequest::FORMAT\_JSON
- HttpRequest::FORMAT\_XML

配置 Curl Options
---------------

[](#配置-curl-options)

```
$request->addOption($name, $value);
$request->addOptions(array $options);
$request->removeOptions($options);
$request->clearOptions();
$request->resetOptions($setDefaultOptions = true);
```

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

9

Last Release

3132d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e0d05ba8b4e28f787a22322fdf0e3f0888231997cf6adc4ee5d187dee7bddf19?d=identicon)[cdcchen](/maintainers/cdcchen)

---

Top Contributors

[![cdcchen](https://avatars.githubusercontent.com/u/748891?v=4)](https://github.com/cdcchen "cdcchen (12 commits)")

---

Tags

httpcurlhttp requesthttpclientphphttpcurlclient

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/cdcchen-http-client/health.svg)

```
[![Health](https://phpackages.com/badges/cdcchen-http-client/health.svg)](https://phpackages.com/packages/cdcchen-http-client)
```

###  Alternatives

[rmccue/requests

A HTTP library written in PHP, for human beings.

3.6k34.5M258](/packages/rmccue-requests)[nategood/httpful

A Readable, Chainable, REST friendly, PHP HTTP Client

1.8k17.2M267](/packages/nategood-httpful)[mashape/unirest-php

Unirest PHP

1.3k9.7M161](/packages/mashape-unirest-php)[php-http/curl-client

PSR-18 and HTTPlug Async client with cURL

48247.0M384](/packages/php-http-curl-client)[smi2/phpclickhouse

PHP ClickHouse Client

83510.1M71](/packages/smi2-phpclickhouse)[apimatic/unirest-php

Unirest PHP

224.7M116](/packages/apimatic-unirest-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
