Ich versuche, eine Anfrage in PHPUnit zu schaffen, aber ich bin nicht sicher, wie diese Variable in der Anfrage einen Anwendungsfehler Dies wird gebenwie HTTP_CTVFNTUSERNAME in guzzle hinzufügen
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());
}
ich passieren Fehler, ist erwähnen HTTP_CTVFNTUSERNAME
wird vermisst.
Ich kann sehen, PHP SERVER
Variable hat keine dieser definiert.
Update
$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");
print_r von $_SERVER
keine HTTP_ Header nicht zeigen, ich gesetzt haben.
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
)
Ich denke, es ist eine gute Idee, auch die eigentliche Fehlermeldung hinzufügen, die Sie auf die Frage erhalten. In PHP-CLI enthält '$ _SERVER' keine HTTP-Header-Einträge (die oft mit' HTTP_' beginnen), die nur FYI. – hakre
ich bekomme keine php oder guzzle Fehler, es ist eher eine Anwendung Fehlerprüfung für diese Header. wenn guzzle curl verwendet, können diese headers gesetzt werden, also wie kann ich es mit guzzle einstellen? – shorif2000