我正在尝试为我的网站构建一个reccomendationn引擎。我正在使用PHP与Laravel作为后端。我想构建一个recomendation引擎,所以我决定为其使用Node .....
nodejs推荐引擎使用GER并产生推荐。
localhost:8081
在我的浏览器中,我得到了完全的期望。我的网站在localhost:8000上运行,因此我需要将localhost:8081的建议引入`localhost:8000 / reccomendations'。为此,我决定使用 Guzzle 。
这是我在laravel中的控制器(一部分):
//RECCOMMENDATION SYSTEM
public function showReccPosts(){
$person='alice';
//The URL you want to send a cURL proxy request to.
$client = new Client();
$request = $client->get('http://127.0.0.1:8081', [
'config' => [
'curl' => [
'CURLOPT_PROXY' => 'asoju.unilag.edu.ng:3128',
'CURLOPT_HTTPPROXYTUNNEL' => 1,
]
]
]);
$result = $request->getBody()->getContents();
return view('reccomended.index',compact('result'));
}
如果我在google.com之类的外部网站上进行尝试,则效果很好。 但是,如果我尝试使用127.0.0.1:8000进行操作,则会出现此错误:
GuzzleHttp \ Exception \ ServerException (503)
Server error: `GET http://127.0.0.1:8081` resulted in a `503 Service Unavailable` response: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <meta type="copy (truncated...)
我不知道发生了什么。503是一般性错误消息。
答案 0 :(得分:0)
我不得不告诉curl忽略代理,如:
// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost:8080/?name=$name",
CURLOPT_PROXY => '',//IGNORE THE PROXY THAT IS NORMALLY USED FOR INTERNET ACCESS
]);
// Send the request & save response to $resp
$results = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);