使用JSON将Android App中的数据发送到PHP无法正常工作

汤姆

我们正在建立一个专为学校设计的项目,并且在将数据从Android应用程序发送到PHP控制器时遇到一些问题。

首先 :

这是代码:首先,几乎是我们AddScoreActivity的完整代码

public static String POST(String url,ScoreData score){
    InputStream inputStream = null;
    String result = "";
    try{
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        String json = "";

        JSONObject jsonObject = new JSONObject();
        jsonObject.accumulate("Totaal", score.getTotaleScore());
        jsonObject.accumulate("Strikes",score.getAantalStrikes());
        jsonObject.accumulate("Spare",score.getAantalSpares());
        jsonObject.accumulate("Game_ID",3);
        jsonObject.accumulate("Google_ID",3);

        json = jsonObject.toString();
        StringEntity se = new StringEntity(json);
        httpPost.setEntity(se);

        httpPost.setHeader("Accept","application/json");
        httpPost.setHeader("Content-type","application/json");

        HttpResponse httpResponse = httpClient.execute(httpPost);
        inputStream = httpResponse.getEntity().getContent();

        if(inputStream != null)
        {
            result = convertInputStreamToString(inputStream);
        }
        else
        {
            result = "Did not work!";
        }
    }
    catch(Exception e)
    {
        Log.d("Inputstream", e.getLocalizedMessage());

    }

    return result;

}

@Override public void onClick(View view){

    TotaleScore = editTotaleScore.getText().toString();
    AantalStrikes = editAantalStrikes.getText().toString();
    AantalSpares = editAantalspares.getText().toString();

    switch(view.getId()){
        case R.id.submitScoreButton:
            if(!validate())
                Toast.makeText(getBaseContext(),"Enter some data!",Toast.LENGTH_LONG).show();
                new HttpAsyncTask().execute("http://localhost/ICTProjects3/ScoreController");
            break;
    }

}



private class HttpAsyncTask extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... urls) {

        score = new ScoreData();

        score.setTotaleScore(TotaleScore);
        score.setAantalStrikes(AantalStrikes);
        score.setAantalSpares(AantalSpares);

        return POST(urls[0],score);
    }

 private boolean validate(){
    if(editTotaleScore.getText().toString().trim().equals(""))
        return false;
    else if(editAantalStrikes.getText().toString().trim().equals(""))
        return false;
    else if(editAantalspares.getText().toString().trim().equals(""))
        return false;
    else
        return true;
}

private static String convertInputStreamToString(InputStream inputStream) throws IOException{
    BufferedReader bufferedReader = new BufferedReader( new InputStreamReader((inputStream)));
    String line = "";
    String result = "" ;
    while ((line = bufferedReader.readLine()) != null)
        result += line;

    inputStream.close();;
    return result;
}

我认为这运作良好。如果我正在使用我的Android模拟器并正在寻找小提琴手。我的仿真器将此发送到我的PHP控制器:

POST http://localhost/ICTProjects3/ScoreController HTTP/1.1 Accept:
  application/json Content-type: application/json Content-Length: 85
  Host: localhost Connection: Keep-Alive User-Agent:
  Apache-HttpClient/UNAVAILABLE (java 1.4)

 {"scoreTotaal":"5","scoreStrikes":"55","scoreSpares":"555","Game_ID":3,"Google_ID":3}

问题是。它什么也没做。我无法使用Controller将其添加到数据库中。我的方法不是问题:ScoreToevoegen($ aScoreData)。那就是把它放到我的数据库中。它的工作基于网络,因此通常可以在这里工作。这是我的PHP控制器:

if (isset($_POST['json']))
    {
        $aJson = $_POST['json'];
        $aScoreData = json_decode($aJson, true);

        $this->load->model('Score_model');
        $this->Score_model->ScoreToevoegen($aScoreData); // Inserting it in the database.

    }

我真的希望你们能帮助我。我被困在这一刻。谢谢!

编辑:ScoreToevoegen方法以及基于Web的控制器(正在工作!)。它由CodeIgniter制成

ScoreController.PHP

 if(isset($_POST['UploadScore'])){
        if ($this->form_validation->run() == FALSE) {
            $this->load->view('ScoreView', $data);
        }
        else {
            $aScoreData =[
                //'Game_ID' => $this->input->post('gameID'),
                //'Google_ID' => $this->input->post('googleID'),
                'Game_ID' =>2,
                'Google_ID' =>2,
                'Totaal' => $this->input->post('scoreTotaal'),
                'Strikes' => $this->input->post('scoreSpares'),
                'Spare' => $this->input->post('scoreStrikes')
            ];
        $this->load->model('Score_model');
        $this->Score_model->ScoreToevoegen($aScoreData);

        $this->load->view('ScoreView', $data);
    }}

Score_Model.PHP

       public function ScoreToevoegen($aData)
{
    $this->load->database();
    $this->db->insert('score', $aData);
}
内纳德·米蒂奇(Nenad Mitic)

您正在将JSON数据作为请求正文发送,而$ _POST ['something']用于从发布的表单中获取数据。

代替这个:

if (isset($_POST['json']))

您应该使用这样的东西:

$aScoreData = json_decode(file_get_contents('php://input'), true);

if ($aScoreData) {
    $this->load->model('Score_model');
    $this->Score_model->ScoreToevoegen($aScoreData);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数据发送到detailViewController无法正常工作?

来自分类Dev

WordPress将ajaxrequest发送到admin-ajax.php无法正常工作?

来自分类Dev

将Json Array从Android设备发送到Mobile Azure Services后端javascript无法正常工作

来自分类Dev

无法使用ajax将数据发送到php文件

来自分类Dev

无法将数据从用户表单发送到 PHP 中的数据库

来自分类Dev

使用JSON将ArrayList从Android发送到PHP脚本

来自分类Dev

无法将表单数据发送到 PHP 页面

来自分类Dev

将数据从 Google App Script 发送到 php 站点

来自分类Dev

如何使用JSON将HTML数据发送到PHP?

来自分类Dev

将adf RTF编辑器中的嵌入式图像发送到Outlook无法正常工作

来自分类Dev

如何不使用json将数据从php发送到android

来自分类Dev

通过TCP将图像从C#发送到Python无法正常工作

来自分类Dev

将数据从$ .ajax发送到php

来自分类Dev

无法通过TCP将Android数据发送到PC

来自分类Dev

从App Engine将图像数据发送到android应用

来自分类Dev

通过USB将数据从Android App发送到PC

来自分类Dev

将数据从Android App发送到Labview WebServer

来自分类Dev

通过USB将数据从Android App发送到PC

来自分类Dev

通过Ajax将数据从Javascript发送到JSON,再发送到PHP

来自分类Dev

ajax GET无法使用jtable将数据发送到php页面

来自分类Dev

无法将POST从android发送到php

来自分类Dev

Javascript:通过ajax将json数据发送到php

来自分类Dev

将 json 数据从 javascript Ajax 发送到 php

来自分类Dev

如何通过PHP将数据从PostgreSQL发送到Android?

来自分类Dev

如何通过PHP将数据从PostgreSQL发送到Android?

来自分类Dev

无法使用Chrome扩展程序中的postMessage从父窗口将数据发送到iframe

来自分类Dev

无法使用php将推送通知发送到ios

来自分类Dev

无法将键发送到 Android 中的输入字段

来自分类Dev

无法将数据发送到mysql数据库。这不是我的PHP代码

Related 相关文章

  1. 1

    将数据发送到detailViewController无法正常工作?

  2. 2

    WordPress将ajaxrequest发送到admin-ajax.php无法正常工作?

  3. 3

    将Json Array从Android设备发送到Mobile Azure Services后端javascript无法正常工作

  4. 4

    无法使用ajax将数据发送到php文件

  5. 5

    无法将数据从用户表单发送到 PHP 中的数据库

  6. 6

    使用JSON将ArrayList从Android发送到PHP脚本

  7. 7

    无法将表单数据发送到 PHP 页面

  8. 8

    将数据从 Google App Script 发送到 php 站点

  9. 9

    如何使用JSON将HTML数据发送到PHP?

  10. 10

    将adf RTF编辑器中的嵌入式图像发送到Outlook无法正常工作

  11. 11

    如何不使用json将数据从php发送到android

  12. 12

    通过TCP将图像从C#发送到Python无法正常工作

  13. 13

    将数据从$ .ajax发送到php

  14. 14

    无法通过TCP将Android数据发送到PC

  15. 15

    从App Engine将图像数据发送到android应用

  16. 16

    通过USB将数据从Android App发送到PC

  17. 17

    将数据从Android App发送到Labview WebServer

  18. 18

    通过USB将数据从Android App发送到PC

  19. 19

    通过Ajax将数据从Javascript发送到JSON,再发送到PHP

  20. 20

    ajax GET无法使用jtable将数据发送到php页面

  21. 21

    无法将POST从android发送到php

  22. 22

    Javascript:通过ajax将json数据发送到php

  23. 23

    将 json 数据从 javascript Ajax 发送到 php

  24. 24

    如何通过PHP将数据从PostgreSQL发送到Android?

  25. 25

    如何通过PHP将数据从PostgreSQL发送到Android?

  26. 26

    无法使用Chrome扩展程序中的postMessage从父窗口将数据发送到iframe

  27. 27

    无法使用php将推送通知发送到ios

  28. 28

    无法将键发送到 Android 中的输入字段

  29. 29

    无法将数据发送到mysql数据库。这不是我的PHP代码

热门标签

归档