Laravel 桌面应用程序
Posted
技术标签:
【中文标题】Laravel 桌面应用程序【英文标题】:Laravel Desktop Application 【发布时间】:2021-12-16 03:06:02 【问题描述】:我已经构建了 laravel 桌面应用程序,我正在使用 apis 从实时服务器获取数据,它工作得非常好,但是当我尝试使用 api 将数据从桌面应用程序上传到实时应用程序时,它不起作用并且甚至没有显示任何错误。当我运行与网络版本相同的代码时,它工作得很好 我使用 curl 将数据从 laravel 桌面应用程序上传到实时服务器数据库这是我的 curl
$fixtures = Matche::withTrashed()->get();
$matchOfficials = MatchOfficial::all()->groupBy('match_id');
$matchPlayers = MatchPlayer::all()->groupBy('match_id');
$matchDetails = MatchDetail::all()->groupBy('match_id');
$points = Points::all();
$teamRankings = RankingPoints::all();
$followReports = FollowReport::all();
$topKeepers = TopKeeper::all();
$topScorers = TopScorer::all();
$url = 'https://asianhandball.info/symbargo/api/push-fixtures';
$token = csrf_token();
$postData = array(
'fixtures' => $fixtures,
'matchOfficials' => $matchOfficials,
'matchPlayers' => $matchPlayers,
'matchDetails' => $matchDetails,
'points' => $points,
'teamRankings' => $teamRankings,
'followReports' => $followReports,
'topKeepers' => $topKeepers,
'topScorers' => $topScorers
);
// for sending data as json type
$fields = json_encode($postData);
$ch = curl_init($url);
curl_setopt(
$ch,
CURLOPT_HTTPHEADER,
array(
'Content-Type: application/json', // if the content type is json
'bearer: ' . $token // if you need token in header
)
);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$result = curl_exec($ch);
curl_close($ch);
return $result;
上述代码用于将数据从 laravel 桌面应用程序上传到实时服务器数据库。请指导我提前谢谢你
【问题讨论】:
我会检查服务器是否返回不成功的 HTTP 状态代码 它给我的只是“假”,但如果我在浏览器上运行相同的代码,它绝对可以正常工作 打开 php 和 Laravel 错误报告,并检查日志。上面的很多东西都可以返回上面的false
,包括curl_init
和curl_exec
,请逐一检查。如果后者返回false
,请在句柄上调用curl_error
。而且,正如我上面设置的,检查返回的HTTP status code。
感谢它在我在答案中提到的 curl 中添加运行
【参考方案1】:
感谢它在添加时运行
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
【讨论】:
以上是关于Laravel 桌面应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 推送通知桌面(chrome 或 firefox)
是否可以使用 Selenium WebDriver 来自动化桌面应用程序?