author | ymh <ymh.work@gmail.com> |
Thu, 02 Jun 2016 18:24:19 +0200 | |
changeset 168 | 17f10b56c079 |
parent 139 | 8d688175513a |
permissions | -rw-r--r-- |
<?php namespace CorpusParole\Http\Controllers\Proxy; use Guzzle; use Illuminate\Http\Request; use CorpusParole\Http\Requests; use CorpusParole\Http\Controllers\Controller; class BnfController extends Controller { const HEADERS_FORWARDED = [ "host", "user-agent", "accept", "accept-language", "accept-encoding", "connection" ]; private function proxyQuery($req, $url) { $headers = []; foreach (BnfController::HEADERS_FORWARDED as $h) { $headerValue = $req->header($h); if($headerValue) { $headers[$h] = $headerValue; } } $complResp = Guzzle::get($url, ['query' => $req->all(), 'headers' => $headers]); $resp = response((string)$complResp->getBody(), $complResp->getStatusCode()); foreach ($complResp->getHeaders() as $name => $values) { if($name != 'Transfer-Encoding') { $resp->header($name, $values); } } return $resp; } // proxy Auto completion query for bnf public function proxyAutoCompletion(Request $req) { return $this->proxyQuery($req, config('corpusparole.bnf_completion_url')); } // proxy sparql query for bnf public function proxySparql(Request $req) { return $this->proxyQuery($req, config('corpusparole.bnf_query_url')); } }