从使用Volley到Laravel5的android发布数据

时间:2016-09-01 02:20:09

标签: php android laravel-5

我在使用哪个URL链接到Laravel5中的php脚本时遇到了问题,我目前正在localhost运行。我在我的控制器中创建了一个函数来处理请求。这是功能:

# Select multiple targeting nodes at once
sel_raw = '|'.join([
    "//div[@class='article']/h2",
    "//div[@class='article']/h3",
    # Whatever else you want to select here
])
for sel in sel.xpath(sel_raw):
    # Extract the texts for later use
    texts = sel.xpath('self::*//text()').extract()
    if sel.xpath('self::h2'):
        # A h2 element. Do something with texts
        pass
    elif sel.xpath('self::h3'):
        # A h3 element. Do something with texts
        pass

我还在route.php中创建了一条路线。

    public function mobile_validator(Request $request) {
    $method = $request->method();
    if($method == 'POST') {
        $username = $request->username;
        $password = $request->password;
        $user = DB::table('users')->get();
        foreach($user as $i) {
            if($username == $i->email and $password == $i->password) {
                return 'success';
            }
            else {
                return 'failure';
            }
        }
    }   

这是我在android中的网址:

Route::get('/mobilevalidator', 'AuthController@mobile_validator');

现在当我在我的应用程序中登录时,它显示错误com.android.volley.timeouterror

在Laravel中定义php脚本时URL是否正确?

1 个答案:

答案 0 :(得分:0)

在你的路线中你定义了一个

Route::get

这意味着此路由正在侦听GET方法。在控制器中指定

$method = $request->method();
if($method == 'POST') {

这意味着你的控制器实际上只返回你有POST的东西,因为你的路由调用你的控制器只听GET

您可以完全删除方法的检查。只有在将路径映射到控制器方法时,才能调用控制器方法。如果您还想支持POST,只需添加

Route::post( ... )

一点提示:

尝试使用PostMan或任何其他RestClient测试您的路线,然后再在您的应用中使用它们。另外,不要忘记删除laravel中的Web中间件 - 否则您还需要将csrf令牌添加到您的请求中。