Reputation: 1277
I'm receiving this error when trying to read a JObject
in C#
from PHP
, it is the result of a basic query "SELECT * FROM items"...
Unexpected character encountered while parsing value: S. Path '', line 0, position 0.
PHP
$query = ($_POST["test"]);
if ($result = $mysqli->query($query)
{
$jsonResult = json_encode($result);
}
echo $jsonResult;
C#
public JObject GetThat()
{
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
Stream Answer = WebResp.GetResponseStream();
string phpResponse = Answer.ToString();
JObject myResult = JObject.Parse(phpResponse);
return myResult;
}
What am I doing wrong? Thanks.
Upvotes: 0
Views: 357
Reputation: 1277
It turns out the problem was the array type.
$row = $result->fetch_array(MYSQLI_NUM);
does not work, but
$row = $result->fetch_array(MYSQLI_BOTH);
and
$row = $result->fetch_array(MYSQLI_ASSOC);
do. Does anyone have any idea why? Thanks.
Upvotes: 0
Reputation: 17587
The problem is that Answer.ToString()
won't return the stream contents as a string. Try something like this.
public JObject GetThat()
{
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
string phpResponse = string.Empty;
using(StreamReader rdr = new StreamReader(WebResp.GetResponseStream()))
phpResponse = rdr.ReadToEnd();
}
JObject myResult = JObject.Parse(phpResponse);
return myResult;
}
Upvotes: 2