add debug switch to configuration

This commit is contained in:
wing328 2015-05-26 23:20:34 +08:00
parent 095771d345
commit 171bf969c7
4 changed files with 29 additions and 0 deletions

View File

@ -240,10 +240,30 @@ class APIClient {
// Set user agent // Set user agent
curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent); curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent);
// debugging for curl
if (Configuration::$debug) {
error_log("[DEBUG] HTTP Request body ~BEGIN~\n".print_r($postData, true)."\n~END~\n", 3, Configuration::$debug_file);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
try {
$fp = fopen(Configuration::$debug_file, 'w');
curl_setopt($curl, CURLOPT_STDERR, $fp);
} catch ( \Exception $e ) {
error_log("Exception in enabling curl debug: ".print_r($e, true), 3, Configuration::$debug_file);
}
} else {
curl_setopt($curl, CURLOPT_VERBOSE, 0);
}
// Make the request // Make the request
$response = curl_exec($curl); $response = curl_exec($curl);
$response_info = curl_getinfo($curl); $response_info = curl_getinfo($curl);
// debug HTTP response body
if (Configuration::$debug) {
error_log("[DEBUG] HTTP Response body ~BEGIN~\n".print_r($response, true)."\n~END~\n", 3, Configuration::$debug_file);
}
// Handle the response // Handle the response
if ($response_info['http_code'] == 0) { if ($response_info['http_code'] == 0) {
throw new APIClientException("TIMEOUT: api call to " . $url . throw new APIClientException("TIMEOUT: api call to " . $url .

View File

@ -34,6 +34,9 @@ class Configuration {
// an instance of APIClient // an instance of APIClient
public static $apiClient; public static $apiClient;
public static $debug = false; // by default debugging is disabled
public static $debug_file = 'php://output'; //output debug log to STDOUT by default
/* /*
* manually initalize API client * manually initalize API client
*/ */

View File

@ -7,6 +7,9 @@ class PetApiTest extends \PHPUnit_Framework_TestCase
// add a new pet (id 10005) to ensure the pet object is available for all the tests // add a new pet (id 10005) to ensure the pet object is available for all the tests
public static function setUpBeforeClass() { public static function setUpBeforeClass() {
// enable debugging
//SwaggerClient\Configuration::$debug = true;
// skip initializing the API client as it should be automatic // skip initializing the API client as it should be automatic
//$api_client = new SwaggerClient\APIClient('http://petstore.swagger.io/v2'); //$api_client = new SwaggerClient\APIClient('http://petstore.swagger.io/v2');
// new pet // new pet

View File

@ -6,6 +6,9 @@ require_once('SwaggerClient-php/SwaggerClient.php');
//$api_client = new SwaggerClient\APIClient('http://petstore.swagger.io/v2'); //$api_client = new SwaggerClient\APIClient('http://petstore.swagger.io/v2');
//$api_client->addDefaultHeader("test1", "value1"); //$api_client->addDefaultHeader("test1", "value1");
// to enable logging
//SwaggerClient\Configuration::$debug = true;
$petId = 10005; // ID of pet that needs to be fetched $petId = 10005; // ID of pet that needs to be fetched
try { try {
//$pet_api = new SwaggerClient\PetAPI($api_client); //$pet_api = new SwaggerClient\PetAPI($api_client);