如何将数据从android发布到laravel 3控制器

时间:2014-11-19 07:13:28

标签: android laravel restful-url laravel-routing laravel-3

大家好我正在使用laravel 3,我想向laravel 3控制器发帖请求。 这里是coontroller users.php

      class Users_Controller extends Base_Controller
       {
           public $restful = true;

          public function post_signin()
          {
                 print("request success");
          }
        }

这是routes.php

         Route::get('signin', array('as'=>'signin','uses'=>'users@signin'));
         Route::post('signin', array('uses'=>'users@signin'));

这里是android post request

          httppost= new HttpPost("http://test.com/signin");

test.com是我通过主机文件使用的本地域名。 我应该在android中输入什么网址来发帖请求?这样它就可以转到users.php并执行该文件的post_signin方法。

我试过了

   1) httppost= new HttpPost("http://test.com/signin");  (as per my route of routes.php)

2)httppost= new               HttpPost("http://localhost/androidtest/application/controller/users.php");

   3) httppost= new HttpPost("http://test.com/users/signin");
   (as per this referance (http://stackoverflow.com/questions/16137851/url-to-do-request-on-laravel)

1 个答案:

答案 0 :(得分:0)

根据您的评论,您正在执行请求两次但使用不同的方法(执行)。您只需要一次执行即可向服务器发出请求。您还将响应变量用作字符串和HttpResponse对象。

请尝试使用以下代码提出请求,使用您的网址更改网址

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);

HttpResponse hResponse = httpClient.execute(httpPost);
StatusLine sl = hResponse.getStatusLine();
int statusCode = sl.getStatusCode();

if ( statusCode == 200 ){
    HttpEntity hp = hResponse.getEntity();
    InputStream content = hp.getContent();
    BufferedReader reader = new BufferedReader(new InputStreamReader(content));

    StringBuilder builder = new StringBuilder();

    String line;
    while((line = reader.readLine()) != null){
        builder.append(line);
    }

    String responseBody = builder.toString();

    System.out.println("Response : " + responseBody); 
}
相关问题