我们需要从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
答案 0 :(得分:0)
我找到了解决方案:
{{1}}