2011-06-19 64 views
2

我试图写一个简单的游戏服务器使用PHP与MySQL数据库的的Android游戏。简单的游戏服务器命令

我的想法是简单的让“机器人应用模拟一个简单的HTTP POST请求 如http://www.mysite.com/missile/new.php?lat=58123456,long=-2123456,state=1

我的Web服务器旨在那么新的导弹储存在一个MySQL数据库正在启动从这些E6共然后我打算写另一个php文件,以允许所有客户周期性地检查飞行中的导弹。

我已经试过了,我发现不同的代码位,但没有100%的成功。

如果键入http://www.mysite.com/missile/new.php?lat=58123456,long=-2123456,state=1到浏览器吧 - 我回来 阵列([launchlat] => 56123456,launchlong = 2700123,状态= 0),因为我只是在做一个简单的

print_r($_GET); 
echo '<br />'; 

我的PHP文件。

但是我目前的代码

  try { 
        String reply; 
      HttpClient client = new DefaultHttpClient(); 
      String postURL = "http://www.mysite.com/missile/new.php"; 
      HttpPost post = new HttpPost(postURL); 
       List<NameValuePair> params = new ArrayList<NameValuePair>(); 
       params.add(new BasicNameValuePair("launchlat", "56123456")); 
       params.add(new BasicNameValuePair("launchlong", "2700123")); 
       params.add(new BasicNameValuePair("state", "0")); 
       UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8); 
       post.setEntity(ent); 
       HttpResponse responsePOST = client.execute(post); 
       HttpEntity resEntity = responsePOST.getEntity(); 
       if (resEntity != null) {  
        reply = EntityUtils.toString(resEntity); 
        Log.i("RESPONSE",reply); 
       } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

我得到的答复空数组。

任何人都可以提出一个调整(或完全新的代码做后和收到的答复好吗?

问候

西蒙

+0

你的PHP响应浏览器的方法,而不是Android的程序。我在调试这样的东西的工具是Wireshark。从浏览器捕获后期响应,然后捕获Android的帖子(无需停用)。包的比较应该是一个很好的线索。 –

回答

4

我不知道Android开发任何东西,但它好像你正在使用HttpPost,但你的PHP期待GET

更改你的PHP在$_POST,而不是$_GET看。
如果您需要GET和POST使用$_REQUEST

+0

真是个傻瓜:)感谢您指出我的错误想法:)更改为呼应的print_r($ _ GET);从我的代码给出了预期的回复:) – SimpleSi

+0

赢家冠军鸡晚餐 – Eric