我想創建PHPUnit中的請求,但我不知道如何在請求如何添加HTTP_CTVFNTUSERNAME在狂飲
use PHPUnit\Framework\TestCase;
use CCP\Models\Services;
use CCP\Models\ServicesUsers;
use GuzzleHttp\Client;
class ServicesTest extends TestCase {
protected $id;
protected $client;
protected function setUp(){
$this->client = new Client([
'base_uri' => 'http://10.97.109.103:8080',
]);
}
public function testViewServiceUsers(){
$response = $this->client->get('/api/user/services/owners/id/269/format/xml',[
'headers' => [
'Accept' => 'application/xml',
]
]);
$this->assertEquals(200, $response->getStatusCode());
print_r($response->getBody()->getContents());
}
這是給我的錯誤應用程序錯誤通過這些變量,提的是HTTP_CTVFNTUSERNAME
不見了。
我可以看到php SERVER
變量沒有任何這些定義。
更新
$response = $this->client->get("/api/user/services/owners/id/{$id}/format/xml",[
'headers' => [
'Accept' => 'application/xml',
],
//'Authorization' => ['Basic '.$credentials]
'CTVFNTDOMAIN'=>'vf-root',
'CTVFAPPLICATIONACCESS'=>'ALL,EROOM,IDM,VF_USER,SURVEY',
'CTVFNTUSERNAME' => 'UddinS2',
]);
$this->assertEquals(200, $response->getStatusCode());
$responseXml = \simplexml_load_string($response->getBody()->getContents(), "SimpleXMLElement", LIBXML_NOCDATA);
print_r($_SERVER);
$this->assertEquals('false', (string) $responseXml->header->error, "Error has been found");
$this->assertEquals(1, (int) $responseXml->body->recordset->metadata->num_rows , "More than number of rows expected");
$this->assertEquals($id, $responseXml->body->recordset->record->SERVICE_ID, "Record ID does not match");
的$_SERVER
的print_r不顯示我已設置的任何HTTP_頭。
Array
(
[USER] => wwwrun
[HOME] => /opt/SP/wwwrun/home
[ORACLE_HOME] => /usr/lib/oracle/12.1/client64/lib
[SCRIPT_NAME] => /index-api.php
[REQUEST_URI] => /api/user/services/owners/id/4126/format/xml
[QUERY_STRING] => url=user/services/owners/id/4126/format/xml
[REQUEST_METHOD] => GET
[SERVER_PROTOCOL] => HTTP/1.1
[GATEWAY_INTERFACE] => CGI/1.1
[REDIRECT_QUERY_STRING] => url=user/services/owners/id/4126/format/xml
[REDIRECT_URL] => /api/user/services/owners/id/4126/format/xml
[REMOTE_PORT] => 57159
[SCRIPT_FILENAME] => /var/httpd/ccp-test/ccp-test.domain.com/docs/index-api.php
[SERVER_ADMIN] => [email protected]
[CONTEXT_DOCUMENT_ROOT] => /var/SP/httpd/ccp-test/ccp-test.domain.com/docs
[CONTEXT_PREFIX] =>
[REQUEST_SCHEME] => http
[DOCUMENT_ROOT] => /var/SP/httpd/ccp-test/ccp-test.domain.com/docs
[REMOTE_ADDR] => x
[SERVER_PORT] => 80
[SERVER_ADDR] => x
[SERVER_NAME] => ccp-test.domain.com
[SERVER_SOFTWARE] => Apache
[SERVER_SIGNATURE] =>
[LD_LIBRARY_PATH] => /opt/SP/apache-2.4/lib
[PATH] => /opt/SP/php7/bin:/opt/SP/php7/sbin:/opt/SP/php7/bin:/opt/SP/php7/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/networker/bin:/opt/networker/sbin:/opt/VRTSvcs/bin:/opt/VRTS/bin
[HTTP_ACCEPT] => application/xml
[HTTP_HOST] => x:8080
[HTTP_USER_AGENT] => GuzzleHttp/6.2.1 curl/7.29.0 PHP/7.0.17
[REDIRECT_STATUS] => 200
[FCGI_ROLE] => RESPONDER
[PHP_SELF] => /index-api.php
[REQUEST_TIME_FLOAT] => 1500890812.0252
[REQUEST_TIME] => 1500890812
[argv] => Array
(
[0] => url=user/services/owners/id/4126/format/xml
)
[argc] => 1
)
我認爲這是一個好主意,以及添加到你的問題的實際錯誤信息。在PHP CLI中,'$ _SERVER'不包含HTTP頭條目(通常用'HTTP_'開始),這只是FYI。 – hakre
我沒有得到任何php或guzzle錯誤,它更多的應用程序錯誤檢查這些頭。如果guzzle使用捲曲,這些標題可以設置,所以我怎麼可以設置它與guzzle? – shorif2000