Laravel Server没有收到来自android的http post请求

时间:2014-09-21 13:51:00

标签: php android laravel-4

我正在尝试创建一个基于android web的应用程序,计划是使用php作为服务器端脚本语言。首先我使用xampp,使用wifi-tethering与笔记本电脑共享我的手机网络,试试看我创建并返回了一个简单的json对象,它有效。 继续实际创建一个严肃的项目,我计划使用laravel为我简化服务器端脚本,但由于某种原因,laravel中的服务器引擎似乎没有得到请求.Below是普通的PHP脚本工作:



<?php
      class message{
	  public $title="";
	  public $content="";
	   
	  
	   
	  }
	  
	   $message=new message;
	   $message->title='Hi there';
	   $message->content='I am hoping we can meet later tonight!';
			  echo json_encode($message);
			
			 
?>
&#13;
&#13;
&#13;

这是我的控制器中的代码,它甚至不执行

<?php 
class MyController extends BaseController{
  public function getHome(){

  $message=new message;
  $message->title="My title";
  $message->content="Everythiing is very cool!";
     return json_encode($ujumbe);
  }
}
?>

这是我在laravel中的routes.php文件中的代码

&#13;
&#13;
Route::post('/',array(
  'as' => 'home',
  'uses' => 'MyController@getHome'
));

Route::get('/',array(
  'as' => 'home',
  'uses' => 'MyController@getHome'
));
&#13;
&#13;
&#13;

我希望能够到达后期路线,但是我没有检查过日志,但似乎根本没有任何请求。但是当我使用我的浏览器并键入相同的路线时,< / p>

&#13;
&#13;
http:://localhost/
&#13;
&#13;
&#13;  我得到了我的对象的文本表示,所以它可以工作。

我已经搜索过类似的问题,我无法获得任何帮助。顺便说一句,在我的Android应用程序中我没有使用localhost,我使用无线网络中的ip地址。我的AsyncTask中的代码是如下所示:

&#13;
&#13;
private class MyAsyncTask extends AsyncTask<String,String,String>{
    	 String url="http://192.168.43.215:8000/";
   		@Override
   		protected String doInBackground(String... arg0) {
   			DefaultHttpClient hclient=new DefaultHttpClient(new BasicHttpParams());
   			HttpPost hpost=new HttpPost(url);
   			hpost.setHeader("Content-type","application/json");
//  			hpost.setHeader("Content-Type",
//                    "application/x-www-form-urlencoded;charset=UTF-8");
   			InputStream inStream=null;
   			String result=null;
   			try{
   				HttpResponse hresponse=hclient.execute(hpost);
   				Log.v("ALERT","response is back");
   				HttpEntity entity=hresponse.getEntity();
   				inStream=entity.getContent();
   				BufferedReader reader=new BufferedReader(new InputStreamReader(inStream,"UTF-8"));
   				StringBuilder sbuilder=new StringBuilder();
   				String line=null;
   				while((line = reader.readLine()) != null){
   					sbuilder.append(line+"\n");
   				}
   				result=sbuilder.toString();
   				Log.v("ALERT","string built already");
   			}catch(Exception e){
   				e.printStackTrace();
   			}
   			finally{
   				try{
   					if(inStream!=null)
   						inStream.close();
   				}catch(Exception e){
   					e.printStackTrace();
   				}
   			}
   			Log.v("ALERT",result);
   			return result;
   			
   		}
    

   		@Override
   		protected void onPostExecute(String result) {
   			
   			super.onPostExecute(result);
   			JSONObject jobject;
   			Log.v("ALERT",result);
   			try{
   				jobject=new JSONObject(result);
   				txtTitle.setText(jobject.getString("title"));
   				txtContent.setText(jobject.getString("content"));
   			}catch(JSONException e){
   				
   				e.printStackTrace();
   			
   			}
   			
   		
   		}
&#13;
&#13;
&#13; 我的问题是,当请求不是来自同一主机时,我是否遗漏了关于laravel路由的内容...以及为什么当我在xampp上运行相同脚本的服务器尝试相同的应用程序时,它工作。或者如果laravel没有&t支持这种请求。请帮助我做任何你能想到的事情

1 个答案:

答案 0 :(得分:1)

String url="http://192.168.43.215:8000/";

尝试String url="http://192.168.43.215

正如你所说,你试过http://localhost并且它有效,那么为什么要将请求发送到端口8000?