コード例 #1
0
 /** Do content negotiation as an external Web Service
 
       @param $accept Accepted mime types (HTTP header)
       
       @param $accept_charset Accepted charsets (HTTP header)
       
       @param $accept_encoding Accepted encodings (HTTP header)
   
       @param $accept_language Accepted languages (HTTP header)
     
       @return returns NULL
     
       @author Frederick Giasson, Structured Dynamics LLC.
   */
 public function ws_conneg($accept, $accept_charset, $accept_encoding, $accept_language)
 {
     $this->conneg = new Conneg($accept, $accept_charset, $accept_encoding, $accept_language, CrudDelete::$supportedSerializations);
     // Check for errors
     if ($this->uri == "") {
         $this->conneg->setStatus(400);
         $this->conneg->setStatusMsg("Bad Request");
         $this->conneg->setStatusMsgExt($this->errorMessenger->_200->name);
         $this->conneg->setError($this->errorMessenger->_200->id, $this->errorMessenger->ws, $this->errorMessenger->_200->name, $this->errorMessenger->_200->description, "", $this->errorMessenger->_200->level);
         return;
     }
     if ($this->dataset == "") {
         $this->conneg->setStatus(400);
         $this->conneg->setStatusMsg("Bad Request");
         $this->conneg->setStatusMsgExt($this->errorMessenger->_201->name);
         $this->conneg->setError($this->errorMessenger->_201->id, $this->errorMessenger->ws, $this->errorMessenger->_201->name, $this->errorMessenger->_201->description, "", $this->errorMessenger->_201->level);
         return;
     }
     // Check if the dataset is created
     $ws_dr = new DatasetRead($this->dataset, "false", "self", $this->wsf_local_ip);
     // Here the one that makes the request is the WSF (internal request).
     $ws_dr->pipeline_conneg($this->conneg->getAccept(), $this->conneg->getAcceptCharset(), $this->conneg->getAcceptEncoding(), $this->conneg->getAcceptLanguage());
     $ws_dr->process();
     if ($ws_dr->pipeline_getResponseHeaderStatus() != 200) {
         $this->conneg->setStatus($ws_dr->pipeline_getResponseHeaderStatus());
         $this->conneg->setStatusMsg($ws_dr->pipeline_getResponseHeaderStatusMsg());
         $this->conneg->setStatusMsgExt($ws_dr->pipeline_getResponseHeaderStatusMsgExt());
         $this->conneg->setError($ws_dr->pipeline_getError()->id, $ws_dr->pipeline_getError()->webservice, $ws_dr->pipeline_getError()->name, $ws_dr->pipeline_getError()->description, $ws_dr->pipeline_getError()->debugInfo, $ws_dr->pipeline_getError()->level);
         return;
     }
 }
コード例 #2
0
ファイル: index.php プロジェクト: neuroidss/OSF-Web-Services
$mtime = explode(' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
$start_datetime = date("Y-m-d h:i:s");
$requester_ip = "0.0.0.0";
if (isset($_SERVER['REMOTE_ADDR'])) {
    $requester_ip = $_SERVER['REMOTE_ADDR'];
}
$parameters = "";
if (isset($_SERVER['REQUEST_URI'])) {
    $parameters = $_SERVER['REQUEST_URI'];
    $pos = strpos($parameters, "?");
    if ($pos !== FALSE) {
        $parameters = substr($parameters, $pos, strlen($parameters) - $pos);
    }
} elseif (isset($_SERVER['PHP_SELF'])) {
    $parameters = $_SERVER['PHP_SELF'];
}
$ws_dr = new DatasetRead($uri, $meta, $registered_ip, $requester_ip, $interface, $version);
$ws_dr->ws_conneg(isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : "", isset($_SERVER['HTTP_ACCEPT_CHARSET']) ? $_SERVER['HTTP_ACCEPT_CHARSET'] : "", isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : "", isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : "");
$ws_dr->process();
$ws_dr->ws_respond($ws_dr->ws_serialize());
$mtime = microtime();
$mtime = explode(" ", $mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = $endtime - $starttime;
if ($ws_dr->isLoggingEnabled()) {
    $logger = new Logger("dataset_read", $requester_ip, "?uri=" . $uri . "&registered_ip=" . $registered_ip . "&requester_ip={$requester_ip}", isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : "", $start_datetime, $totaltime, $ws_dr->pipeline_getResponseHeaderStatus(), isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "");
}
//@}