这是我某天突然想到的,python 的 requests 那么好用,为什么 php 要写的这么又臭又长呢?我就结合 claude code 写了一个 composer 包,完全仿照了 requests 模块。求轻喷,欢迎 star 、pr
github 地址 https://github.com/tg111/php-request
直接安装
composer require tg111/php-request
use PhpRequest\PhpRequest;
// 简单的 GET 请求
$response = PhpRequest::get('https://httpbin.org/get');
echo $response->text();
// 带参数的 GET 请求
$response = PhpRequest::get('https://httpbin.org/get', [
'key1' => 'value1',
'key2' => 'value2'
]);
// POST 请求
$response = PhpRequest::post('https://httpbin.org/post', [
'username' => 'user',
'password' => 'pass'
]);
// JSON POST 请求
$response = PhpRequest::post('https://httpbin.org/post', [
'name' => '张三',
'email' => 'zhangsan@example.com'
], [
'headers' => ['Content-Type' => 'application/json']
]);
$response = requests_get('https://httpbin.org/get');
$response = requests_post('https://httpbin.org/post', ['key' => 'value']);
$response = PhpRequest::get('https://httpbin.org/cookies', [], [
'cookies' => [
'session_id' => 'abc123456789',
'user_preference' => 'dark_mode'
]
]);
# cookies
$response = PhpRequest::get('https://httpbin.org/cookies', [], [
'cookies' => [
'session_id' => 'abc123456789',
'user_preference' => 'dark_mode'
]
]);
会话允许在多个请求之间持久化 Cookie 、请求头和其他配置:
use PhpRequest\PhpRequest;
// 创建会话
$session = PhpRequest::session()
->setHeaders([
'Authorization' => 'Bearer token123',
'Accept' => 'application/json'
])
->setCookies([
'session_id' => 'session123'
])
->setTimeout(60);
// 使用会话进行多个请求
$profile = $session->get('/user/profile');
$settings = $session->get('/user/settings');
$updated = $session->post('/user/update', ['name' => '新名称']);
$response = PhpRequest::get('https://httpbin.org/json');
// 获取响应内容
$text = $response->text(); // 原始文本内容
$data = $response->json(); // 解析 JSON 响应
$code = $response->getStatusCode(); // HTTP 状态码
// 检查响应状态
$success = $response->ok(); // 2xx 状态码为 true
$isClientError = $response->isClientError(); // 4xx 状态码为 true
$isServerError = $response->isServerError(); // 5xx 状态码为 true
// 获取头部和元数据
$headers = $response->getHeaders();
$contentType = $response->getContentType();
$totalTime = $response->getTotalTime();
$url = $response->getUrl();
// 保存响应到文件
$response->save('/path/to/file.json');
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.