Flix Flix - 1 month ago 12
JSON Question

ANDROID&PHP - Why am I getting this JSONArray parsing error

I've tried various methods to display data from MySQL into android with PHP and JSON from my hosting here, but always getting error like this
Screenshot_2016-10-22-15-52-56-359_flix.yudi.okh.png

but when i request another link with the same JSON result, its work fine

i've tried to find out, and i suggested to enable

JavaScript
in my hosting, but i didn't find out the reference how to enable
JavaScript
in my hosting,

here is the
PHP
code to
encode_JSON




<?php
include 'dbconfig.php';
$con = new mysqli($servername, $username, $password, $dbname);
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$query = "select id,ask from pertanyaan";

$result = mysqli_query($con, $query);

$rows = array();
while ($r = mysqli_fetch_array($result)) {
$rows[] = $r;
}
echo json_encode(array_values($rows));

mysqli_close($con);
?>


did i using wrong code to encode_json from PHP?

EDITED AFTER ADD header('Content-Type: application/json');


LogCat
notif



10-24 14:16:09.010 17727-17749/flix.yudi.okhttp1 E/MainActivity: Response from url: <html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("455e95bd78dbe99a933749187199f824");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://www.zxccvvv.cuccfree.com/send_data.php?i=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html>
10-24 14:16:09.010 17727-17749/flix.yudi.okhttp1 E/MainActivity: Json parsing error: Value <html><body><script of type java.lang.String cannot be converted to JSONArray
10-24 14:16:09.161 17727-17746/flix.yudi.okhttp1 V/RenderScript: 0x55abdd14e0 Launching thread(s), CPUs 8

Answer

Compared given two request. You haven't set the header in PHP script as JSON. For setting Content-type header as JSON, put following code in PHP script

header('Content-Type: application/json');

It will work. There is not error in your android code, as the 2nd url gives the desired result. Also I don't think there is any problem while encoding JSON.

While comparing two links check the Content-type header in request, both are different. enter image description here

enter image description here