受影响的枪口版本:6.3 Laravel:5.6.3 PHP:7.2.10
说明 如果我想在修补程序中获得回应
$client = new \GuzzleHttp\Client();
$response = $client->get($url);
json_decode($response->getBody())
我得到预期的答复。
但在我的控制器中
$object_res = $client->get($url);
我遇到错误
“ cURL错误3:格式错误(请参见http://curl.haxx.se/libcurl/c/libcurl-errors.html)”,…}
这意味着该网址不正确,但是正如我所描述的那样,它可以完美地解决问题。
注意 我在本地主机上一切正常,这仅发生在我的测试服务器上。
如果需要提供其他信息,请告诉我。
答案 0 :(得分:0)
Tinker使用与您的应用程序不同的运行时,这可能会导致问题,因为在一种情况下。 php直接从您的机器直接到达api服务器,而其他的则在发出请求之前通过您的网络服务器。
要做的第一件事是使用
清除laravel缓存和配置 php artisan cache:clear
和
php artisan config:clear
如果失败,我将调查您的Web服务器上的跨域限制或设置。
答案 1 :(得分:0)
请检查服务器上的Guzzle要求。
public class sMessage implements Runnable {
@Override
public void run() {
try {
Log.v(TAG, "send");
InetAddress serverAddr = InetAddress.getByName(SERVERIP);
Socket socket = new Socket(serverAddr, 5000);//create a socket
DataOutputStream os = new DataOutputStream(socket.getOutputStream());
PrintWriter ot = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
String s = "1";
//s+="\r\n";
//byte[] bytes = s.getBytes("UTF-8");
//os.writeChar(1);
//os.writeBytes(text);
//os.writeUTF(String.valueOf("123"));
ot.println(text);
ot.flush();
ot.close();
os.flush();
os.close();
socket.close();
} catch (IOException e) {
Log.e(TAG, "ERROR");
}
}
}
答案 2 :(得分:0)
我刚在测试服务器上遇到此问题,我使用座舱发现了它。但是我的问题是大声/ youtube。如果生产服务器上有selinux,请检查。还要检查.env的文件权限。当不显示服务器变量时,很难给出解决方案。 还请阅读您的laravel日志,向我介绍了解决方案。 希望这会有所帮助。