Java 使用json从android向php发送数据

Java 使用json从android向php发送数据,java,php,android,mysql,json,Java,Php,Android,Mysql,Json,嘿,我正在尝试将数据从我的android应用程序发送到web服务器,并使用mysql将其发送到数据库,尽管它似乎没有任何错误,但我的代码不起作用 android java代码: String categorys=category.getText().toString(); String authors = author.getText().toString(); String quess = question.

嘿,我正在尝试将数据从我的android应用程序发送到web服务器,并使用mysql将其发送到数据库,尽管它似乎没有任何错误,但我的代码不起作用

android java代码:

                      String categorys=category.getText().toString();
          String authors = author.getText().toString(); 
          String quess = question.getText().toString(); 
          String anss = answer.getText().toString();    

                    try {
                        JSONObject json = new JSONObject(); 
                        json.put("category",categorys); 
                        json.put("ques",quess);
                        json.put("ans",anss);
                        json.put("authors",authors);
                        postData(json);


                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            });     
        }

        public void postData(JSONObject json) throws JSONException {
            HttpClient httpclient = new DefaultHttpClient();

            try { 
                HttpPost httppost = new HttpPost("http://shlomo.webuda.com/androidtomy.php");

                List<NameValuePair> nvp = new ArrayList<NameValuePair>(2);    
                nvp.add(new BasicNameValuePair("json", json.toString()));
                //httppost.setHeader("Content-type", "application/json");  
                httppost.setEntity(new UrlEncodedFormEntity(nvp));
                HttpResponse response = httpclient.execute(httppost); 

                if(response != null) {
                    InputStream is = response.getEntity().getContent();
                    //input stream is response that can be shown back on android
                }

            }
            catch (Exception e) 
            {
                e.printStackTrace();
            } 




                }`

?>

如评论中所述,PHP文件有几个问题。请尝试以下方法:

mysql_connect("something","something","something");
mysql_select_db("something");


$json = $_REQUEST['json'];
echo "JSON: \n";
var_dump($json);
echo "\n\n";

$data = json_decode($json,true);
var_dump($data);

$category=$data['category'];
$author=$data['authors'];
$question=$data['ques'];
$answer=$data['ans'];
$sql = "INSERT INTO Ques(Ques_Author, Ques_Question,Ques_Answer,Ques_Category,Ques_Approve) values($category,$author,$question,$answer,0)";
mysql_query($sql);
另外,您不应该使用mysql_query-function。您应该使用mysqli_**-functions或PDO()。mysql_查询从PHP5.5开始就被弃用,这是有充分理由的。特别是当您将似乎正确的url发布到上述php文件时


如果您仍然存在问题,请提供$json变量的内容,并提供来自Java代码的请求副本

define“not work”数据库中没有任何内容,insert查询不会发送任何内容。。您希望看到什么
$\u SERVER['HTTP\u json']
当您的值命名为
json
并且是POST变量时,该怎么办?这不是简单的
$\u POST['json']
?你真的需要学习基本的PHP
。。。值('foo','bar')
不会插入您提交的数据-您的值有硬编码字符串。同样,您几乎肯定容易受到。$json=$_POST['json']?eitherOk不起作用,如果您需要我们能够回答,您需要向我们提供PHP json变量输出的内容以及从请求到PHP服务器的副本。
mysql_connect("something","something","something");
mysql_select_db("something");


$json = $_REQUEST['json'];
echo "JSON: \n";
var_dump($json);
echo "\n\n";

$data = json_decode($json,true);
var_dump($data);

$category=$data['category'];
$author=$data['authors'];
$question=$data['ques'];
$answer=$data['ans'];
$sql = "INSERT INTO Ques(Ques_Author, Ques_Question,Ques_Answer,Ques_Category,Ques_Approve) values($category,$author,$question,$answer,0)";
mysql_query($sql);