欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php httphelper 使用

林雅南1年前6瀏覽0評論

在現代web應用程序開發中,HTTP處理變得越來越重要。對于PHP 開發人員來說,使用PHP HTTPhelper 功能非常強大,可以幫助開發人員快速創建和處理HTTP請求和響應,這個庫的功能非常廣泛且易于使用。下文將詳細講解PHP HTTPhelper 的使用。

首先您需要安裝PHP HTTPhelper庫,您可以通過composer來完成這個過程:

$ composer require php-http/guzzle6-adapter

接下來,您就可以開始使用HTTPhelper庫了。

下面是一些常用的功能:

1.創建請求:

use Http\Client\HttpClient;
use Http\Message\RequestFactory;
use Http\Client\Common\HttpMethodsClient;
$httpClient = new HttpClient; // you can inject a specific HTTP client here
$requestFactory = new RequestFactory;
$client = new HttpMethodsClient($httpClient, $requestFactory);
$request = $requestFactory->createRequest(
'POST',
'https://httpbin.org/post',
['Content-Type' =>'application/json'],
'{"hello":"world"}'
);
$response = $client->sendRequest($request);

上面的代碼使用 HttpMethodsClient 對象創建了一個POST請求(HTTP方法)并發送到遠程服務器。這個請求包含header以及傳輸數據的請求體部分。 發送成功后,該代碼將返回服務器響應,可以打印響應內容:

printf("HTTP/%s %d %s\n",
$response->getProtocolVersion(),
$response->getStatusCode(),
$response->getReasonPhrase()
);
foreach ($response->getHeaders() as $name =>$values) {
foreach ($values as $value) {
printf("%s: %s\n", $name, $value);
}
}
echo "\n".$response->getBody()."\n";

另外一個符合 HTTP 標準的庫是 Guzzle,可以作為PHP HTTPhelper 的httpClient 和 requestFactory 的實現。根據 Guzzle 的文檔,您可以這樣使用 HttpGuzzle6Adapter :

use Http\Adapter\Guzzle6\Client as GuzzleHttpClient;
use GuzzleHttp\Client as GuzzleClient;
use Http\Message\MessageFactory\GuzzleMessageFactory;
$guzzle = new GuzzleClient();
$httpClient = new GuzzleHttpClient($guzzle);
$messageFactory = new GuzzleMessageFactory();
$client = new HttpMethodsClient($httpClient, $messageFactory);
$request = $messageFactory->createRequest('GET', 'http://example.com');
$response = $client->sendRequest($request);

2.發送JSON請求:

將 PHP 數組封裝成json 請求:

use Http\Client\Common\RequestFactory;
use Http\Message\RequestFactory\Psr17FactoryDiscovery;
$requestFactory = Psr17FactoryDiscovery::findRequestFactory();
$headers = [
'User-Agent' =>'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0',
'Accept'     =>'application/json',
'Content-Type' =>'application/json',
];
$body = json_encode([
'prop1' =>'value',
'prop2' =>123,
]);
$request = $requestFactory->createRequest(
'POST',
'https://example.com/api',
$headers,
$body
);
$response = $client->sendRequest($request);

3.發送表單數據:

發送表單數據可以使用 PHP HTTPhelper 庫的 FormParameterInterface 接口實現。FormParameterInterface 描述表單參數與值的對應關系。使用此接口,您可以從 PHP 數組中獲取這些參數并將它們設置為表單參數:

use Http\Message\RequestFactory\StandardFactory;
use Http\Message\UriFactory\StandardFactory;
use Nyholm\Psr7\Factory\Psr17Factory;
$requestFactory = new StandardFactory(new Psr17Factory(), new Psr17Factory(), new Psr17Factory());
$uriFactory = new StandardFactory();
$parameters = ['foo' =>['bar', 'baz']];
$request = $requestFactory->createRequest(
'POST',
$uriFactory->createUri('https://postman-echo.com/post'),
);
foreach ($parameters as $name =>$value) {
$request = $request->withAddedHeader($name, $value);
}
$response = $client->sendRequest($request);

4.使用憑據進行身份驗證:

憑據是 HTTP 用戶名和密碼的組合,如果您需要發送 HTTP 請求并在其上使用憑據進行身份驗證,可以使用以下代碼:

use Http\Message\RequestFactory\StandardFactory;
use Http\Message\UriFactory\StandardFactory;
use Nyholm\Psr7\Factory\Psr17Factory;
use Http\Client\Common\Plugin;
use Http\Client\Common\Plugin\AddHostPlugin;
use Http\Client\Common\Plugin\AuthenticationPlugin;
$requestFactory = new StandardFactory(new Psr17Factory(), new Psr17Factory(), new Psr17Factory());
$uriFactory = new StandardFactory();
$username = 'my_username';
$password = 'my_password';
$url = 'https://my-api.com';
$credentials = sprintf('%s:%s', $username, $password);
$request = $requestFactory->createRequest(
'GET',
$uriFactory->createUri($url)
);
$client = Http\Client\HttpClient::createWithMiddleware([
new Http\Client\Common\Plugin\BaseUriPlugin($uriFactory->createUri($url)),
new AuthenticationPlugin(
new Psr7Authentication(
new Psr17Factory(),
new Psr17Factory(),
new Psr17Factory(),
new Psr7RequestFactory(),
$credentials
)
),
]);
$response = $client->sendRequest($request);

最后,這些僅僅是 PHP HTTP Helper 功能的一部分,它是一個功能強大的工具,可以幫助 PHP 開發人員輕松地創建和處理 HTTP 請求和響應。希望本篇文章能夠對您的工作有所幫助。