0

ユーザー名をサーバーに送信しようとしています。これが私のobjective-cコードです:

 NSURL *postUrl=[NSURL URLWithString:@"http://yatanadam.com/Nappsak/checkTheUser.php"];
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:postUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0f];

NSString *strData=@"userName=yatanadam";
NSData* data = [strData dataUsingEncoding:NSUTF8StringEncoding];

[request setHTTPMethod:@"POST"];

[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d",[data length]] forHTTPHeaderField:@"Content-Length"];

[request setHTTPBody:data];


NSURLResponse *response=nil;
NSError *error=nil;
NSData *result=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *string = [[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding];

if (error==nil) {

    NSLog(@"%@",string);

}

そしてここに私のphpコード:

    <?php
$userName = $_POST["userName"];
echo $userName ;

$con = mysql_connect("localhost","username","password");
if (!$con)
{

    $hata= "hata";
    echo hata;
    die('Baglanti saglanamadi: ' . mysql_error());
}mysql_select_db("yata", $con);

$degisken= "Select * from Users where user_name=$userName";
$showresult = mysql_query($degisken);

$multi_array = array();
while($row = mysql_fetch_assoc($showresult)){
    $multi_array[] = $row;}
print json_encode($multi_array);

?>}

私は今、この問題に何時間も取り組んでいます。問題は、サーバーから正しい応答が得られないことです。サーバーコードが投稿データ (ユーザー名) をキャッチできません。私の間違いはどこですか?

4

1 に答える 1

0

ヘッダーには送信していると表示されていますがapplication/json(Content-Type)、実際に送信しているデータは単なる文字列 ("userName=yatanadam") です。

おそらくやりたいことは送信ですapplication/x-www-form-urlencoded(そして、それがあなたのPHPが期待していることのようです)。

于 2013-08-27T18:43:36.317 に答える