Guzzle 6使用auth的Asyncronous请求返回null

时间:2015-12-06 07:23:20

标签: php guzzle

我们需要从API URL获取实时数据。首先我们需要连接服务器,在这种情况下是$ uri1,然后我们必须使用第二个URI(例如:$ uri2),它将以JSON格式提供输出。

我试图这样做的是:

$un = 'abc';  //username
$pa = '123';  //password
$base_uri = 'http://example.com:82/';
$uri1 = 'api/instant/connectopc';
$uri2 = 'api/instant/displaydata?site=SITE';

$cookieFile = 'jar.txt';
$cookieJar = new FileCookieJar($cookieFile, true);

$client = new Client([
        'base_uri' => $base_uri,
        'auth'=>[$un, $pa],
        'cookie'=>$cookieJar,
        'curl' => [

            CURLOPT_COOKIEJAR => 'jar.txt',

            CURLOPT_COOKIEFILE => 'jar.txt'
        ]

    ]);


$promises = [

        'connect' => $client->getAsync($uri1),
        'live'   => $client->getAsync($uri2)

    ];

    $results = Promise\unwrap($promises);

    dd($results);

    //$body = $results['live'];
  

输出

array:2 [▼
  "connect" => Response {#345 ▼
  -reasonPhrase: "OK"
  -statusCode: 200
  -headers: array:10 [▶]
  -headerLines: array:10 [▶]
  -protocol: "1.1"
  -stream: Stream {#336 ▶}
}
"live" => Response {#357 ▼
  -reasonPhrase: "OK"
  -statusCode: 200
  -headers: array:10 [▶]
  -headerLines: array:10 [▶]
  -protocol: "1.1"
  -stream: Stream {#348 ▶}
}]

Data: dd($body->getBody()->getContents());  //-----> output:  null

i)首先,我们需要在此之后与uri 1连接。 ii)uri 2将实时提供实时数据。

两个URI都在连接,但第二个URI($ uri2)的内容为NULL。

任何帮助将不胜感激。

此致 NKR

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

{{1}}