這里寫問(wèn)題描述
RT 需要訪問(wèn)的網(wǎng)頁(yè)需要輸入用戶名密碼,請(qǐng)問(wèn)用http-client 怎么訪問(wèn)?
http://www.wtbis.cn/doc/workerman/components/workerman-http-client.html
$http->post('https://example.com/', ['key1' => 'value1', 'key2' => 'value2'], function ($response) {
var_dump($response->getStatusCode());
echo $response->getBody();
}, function ($exception) {
echo $exception;
});
看表單的name屬性,['key1' => 'value1', 'key2' => 'value2'],改成對(duì)應(yīng)的,直接POST
己經(jīng)解決了,解決方法如下:
$http->request($post, [
'method' => 'GET',
'version' => '1.1',
'headers' => ['Connection' => 'keep-alive'],
'headers' => ['Authorization' => 'Basic base64用戶名:密碼'],
試了幾種方法,這種行 Key value那個(gè)方法不知道為什么認(rèn)證不能通過(guò)。這個(gè)是查看瀏覽器通訊數(shù)據(jù)得到的get的數(shù)據(jù)弄的。
'headers' => ['Connection' => 'keep-alive'],
'headers' => ['Authorization' => 'Basic base64用戶名:密碼'],
改成
'headers' => [
'Connection' => 'keep-alive',
'Authorization' => 'Basic base64用戶名:密碼'],
不然會(huì)覆蓋掉其中一個(gè)headers
我試了幾種方式,只有這種方式,能通過(guò)驗(yàn)證,用戶名密碼是打開(kāi)瀏覽器的開(kāi)發(fā)者模式看看到的。
用get是因?yàn)槲疫B接的設(shè)備只支持get.用post得不到數(shù)據(jù)。
可能我連接的設(shè)備不需要'Connection' => 'keep-alive',還有就是我試了很多種方式,大部份實(shí)際發(fā)送的數(shù)據(jù)'Authorization' => 'Basic base64用戶名:密碼'],這個(gè)中間的base64用戶名密碼這段會(huì)發(fā)生變化,而不能通過(guò)驗(yàn)證。