PDA

View Full Version : مشکل در کتابخانه Volley



pejmanprogramming
پنج شنبه 11 مرداد 1397, 10:59 صبح
سلام با عرض ادب بنده هنگامی که Jsonobject را با کتابخانه volley به سمت سرور میفرستم خطای زیر در Response.ErrorListener چاپ میشود

com.android.volley.ParseError: org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject

این ها هم کد های سمت سرور

<?php


include 'configdatabase.php';


$username = $_POST["username"];
$email = $_POST["email"];




$queryselect="SELECT * FROM signup WHERE username = :username";
$res2 = $connect -> prepare($queryselect);
$res2 -> bindparam(":username" , $username);
$res2 -> execute();
$row = $res2 -> fetch(PDO::FETCH_ASSOC);
if($row)
{

echo json_encode(array('success' => false));

}
else
{
$query="INSERT INTO signup (username , email) VALUES (:username , :email)";
$res = $connect -> prepare($query);
$res -> bindparam(":username" , $username);
$res -> bindparam(":email" , $email);
$res -> execute();
echo json_encode(array('success' => true));
}


?>

این هم کد های سمت اندروید
jsonObject.put("username" , edtusername.getText().toString());
jsonObject.put("email" , edtemail.getText().toString());


JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, this.jsonObject , new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject res) {

Log.i("Log" , "res = " + res.toString());
try {

boolean success= res.getBoolean("success");
Log.i("Log" , "4");
onSignupComplate.onSignUp(success);
} catch (JSONException e) {

e.printStackTrace();
Log.i("Log" , "E =" + e.toString());
}


}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.i("Log" , "E =" + volleyError.toString());
}
});

RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(request);

فهمیدم که موقعی که به کد سمت سرور _POST میرسد خطا میده

s3dhossein
پنج شنبه 11 مرداد 1397, 15:44 عصر
با postman ریکوئست بفرستید ب سرور ببنید جیسون رو اصلا میتونه درست کانورت کنه یا نه اروری که میده مربوط به کد های سمت سرور هست که اشتباه جیسون داره میده ب برنامه

s3dhossein
پنج شنبه 11 مرداد 1397, 15:46 عصر
این کد رو ببنید درست داره عملیات لاگین رو انجام میده و جیسون صحیح تحویل میده به برنامه مقایسه کنید
و تست کنید

$con=mysqli_connect($dbhost,$db_user,$db_pass);
mysqli_select_db($con,$db_name);
$myusername = mysqli_real_escape_string($con,$_POST['user']);
$mypassword = mysqli_real_escape_string($con,$_POST['pass']);
if(isset($myusername)&&(isset($mypassword)))
{
$mypassword=md5($mypassword);
mysqli_query($con,"SET NAMES UTF8");
$sql = "SELECT * FROM `users` WHERE `uname` = '".$myusername."' AND `upass` = '".$mypassword."'";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$count = mysqli_num_rows($result);
if($count>0){
$output="true";
$dbprofbio=$row["bio"];
$dbproftell=$row["tell"];
$dbprolname=$row["lname"];
$dbprofname=$row["name"];
$dbprofpic=$row["upic"];
}


else if($count<1){
$output="false";}



}

$myObj->lastsession = jdate("Y/n/j", time());
$myObj->lasttime = jdate("H:i:s", time());
$myObj->state = $output;
$myObj->username = $myusername;
$myObj->bio =$dbprofbio;
$myObj->tell = $dbproftell;
$myObj->lname = $dbprolname;
$myObj->name = $dbprofname;
$myObj->profpic = $dbprofpic;



$myJSON = json_encode($myObj);
$json_string = json_decode($myJSON, JSON_PRETTY_PRINT);
$json_string=json_encode($json_string);
echo ($json_string) ;

unset($_POST);
mysqli_close($con);

?>

pejmanprogramming
شنبه 13 مرداد 1397, 17:05 عصر
با PostMan اینکار را کردم ولی مقدار null میفرسته اخه چرااااااااااااااااا؟؟؟؟ مگه با کد _Post و دادن کلید نباید متغیر را گرفت ( کد شما هم برایم جواب نداد):ناراحت::ناراحت::ناراحت :