私のmysqlデータベースからいくつかの値を取得するためにiphone用のASIFormDataRequestを使用しようとしています。 iphoneからASIFormDataRequestを使用した簡単なmysqlクエリ
私はこれを実行します。
NSURL *url = [NSURL URLWithString: ServerApiURLGet];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL: url];
[request setDelegate:self];
[request setPostValue:@"james" forKey:@"name"];
要求がないPHPファイルに送信されたが、この:
$con = mysql_connect("host","user","password");
mysql_select_db("table", $con);
$name = mysql_real_escape_string($_GET['name']);
$query = mysql_query("SELECT score FROM `active_users` WHERE `nickname` ='$name';");
$result = mysql_fetch_array($query);
sendResponse(200, json_encode($result));
と応答機能:
function sendResponse($status = 200, $body = '', $content_type = 'text/html')
{
$status_header = 'HTTP/1.1 ' . $status . ' ' . getStatusCodeMessage($status);
header($status_header);
header('Content-type: ' . $content_type);
echo $body;
}
iPhoneに戻って、このようなコールバックから情報を読み取ろうとします:
- (void)requestFinished:(ASIHTTPRequest *)request
{
NSDictionary *responseDict = [[request responseString] JSONValue];
NSLog(@"responseString: %@", [request responseString]);
NSLog(@"responseHeaders: %@", [request responseHeaders]);
NSLog(@"responseDict: %@", responseDict);
}
しかし、動作しません。私はエラーが表示されます:
2012-03-12 08:33:57.657 Test[1991:707] -JSONValue failed. Error is: Unexpected end of input
2012-03-12 08:33:57.659 Test[1991:707] responseString:
2012-03-12 08:33:57.660 Test[1991:707] responseHeaders: {
Connection = close;
"Content-Type" = "text/html";
Date = "Mon, 12 Mar 2012 07:33:58 GMT";
Server = "Apache/2.2.6 mod_auth_kerb/5.3 PHP/5.2.17 mod_fcgid/2.3.6";
"Transfer-Encoding" = Identity;
"X-Powered-By" = "PHP/5.2.17";
}
2012-03-12 08:33:57.661 Test[1991:707] responseDict: (null)
何か助けがあります。おかげ
編集:
同じ結果、私は単純な配列で渡す場合:解決
$newArray = array(
"score1" => '1000',
);
sendResponse(200, json_encode($newArray));
:私は_POSTに_GETを変更
は、それが動作します。ありがとう
[request responseString]を記録すると、サーバーからの応答はjson validではありません。ここにログを追加 –
ログにコードを更新しました – BlackMouse