0

これが私のJavaコードで、httpリクエストを作成し、jsonオブジェクトをphpスクリプトに送信します。

login.java

    String username = jTextField1.getText();
    String password = jPasswordField1.getText();

    JSONObject obj = new JSONObject();

    obj.put("username", username);
    obj.put("password", password);

    //JSONArray list = new JSONArray();
    //list.add(username);
    //list.add(password);


    //obj.put("logindata", list);
    try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpResponse response;
        HttpPost httppost = new HttpPost("http://localhost/kolitha/json_test/index.php");
        StringEntity se = new StringEntity("myjson" + obj.toString());
        httppost.setEntity(se);
        System.out.print(se);
        httppost.setHeader("Accept", "application/json");
        httppost.setHeader("Content-type", "application/json");
        System.out.println(obj.toString());

        //response = httpclient.execute(httppost);

        HttpGet httpget = new HttpGet("http://localhost/kolitha/json_test/index.php");
        response = httpclient.execute(httpget);
        HttpEntity entity = response.getEntity();
        System.out.println(EntityUtils.toString(entity));



    } catch (Exception e) {
        e.printStackTrace();
        System.out.print("Cannot establish connection!");

    }

これは私の index.php スクリプトで、json オブジェクトからユーザー名とパスワードを抽出できません。

index.php

$obj = json_decode(file_get_contents('php://input'));

$username=$obj->{'username'};
$password=$obj->{'password'};


$connect=mysql_connect('localhost', 'root', '');
IF (!$connect){
die ('Failed Connecting to Database: ' . mysql_error());}

$d = mysql_select_db("kolitha_json_test");
if(!$d){ echo "db not selected";}

$sql="SELECT * FROM login WHERE username='$username' AND password='$password' ";
$result=mysql_query($sql) or die (mysql_error());
$count=mysql_num_rows($result);

 // If result matched $myusername and $mypassword, table row must be 1 row
if($count==1)
{
echo "true";
}
else
 {
echo "false";
}
?>
4

2 に答える 2

0

コメントを残しましたが、誰もコメントに注意を払っていないようです。エラーはJavaコードにあります

StringEntity se = new StringEntity("myjson" + obj.toString());

と呼ばれるjson文字列に接頭辞を追加しますmyjson

于 2013-07-16T10:00:02.527 に答える
0

HttpPost とHttpGetの両方を使用しているのはなぜですか。文字列エンティティをHttpPostリクエストに追加していて、使用していません..

一方、ユーザー名とパスワードを設定していないHttpgetを使用しています(したがって、明らかにhttpgetリクエストに関連付けられたjsonデータはありません)

ここで変更を加えます

 response = httpclient.execute(httppost);//don comment this line

httppost を使用している場合は、ここにコメントを追加してください

//HttpGet httpget = new HttpGet("http://localhost/kolitha/json_test/index.php");
//response = httpclient.execute(httpget);
于 2013-07-16T11:05:43.230 に答える