这是我的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";
}
?>
答案 0 :(得分:0)
好的,我发表了评论,但似乎没有人注意评论。错误发生在Java代码
中StringEntity se = new StringEntity("myjson" + obj.toString());
为名为myjson
答案 1 :(得分: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);