Guzzle中的CakePHP HttpSocket的等价物

时间:2017-02-14 22:41:19

标签: php cakephp guzzle

我有一段用CakePHP编写的代码,用于将HTTP Post Request发送到URI并获得响应。

我不了解CakePHP,需要将其更改为Guzzle样式才能发送HTTP Post Request

这是CakePHP代码:

private static function sendRequest() {
        App::uses('HttpSocket', 'Network/Http');
        try {
            $HttpSocket = new HttpSocket();
            return trim($HttpSocket->post(self::$webserviceUri, self::$requestData, [
                'header' => ['Content-Type' => 'text/xml'],
                'auth' => ['method' => 'Basic', 'user' => self::$username, 'pass' => self::$password]
            ]));
        } catch (SocketException $e) {
            CakeLog::write('request_error', 'Request Error: '. $e->getMessage());
            return false;
        }
    }

主要目标是:

如何使用Guzzle发送完整的HTTP Post Request(上面的代码)?

任何帮助都会非常感激。

P.S: 我使用的是Guzzle 6.2

1 个答案:

答案 0 :(得分:1)

$client = new Client(['auth' => ['username', 'password'], 'headers' => ['Content-Type' => 'text/xml']]);
$client->request('POST', self::$webserviceUri, ['body' => self::$requestData]); 

我相信它应该有效,我还没有测试过,但这个想法就是这个。