2

私はまだ初期段階のiOS開発者ですが、フルタイムのPHP開発者です。iOS開発者のアプリケーションがPOSTを介してWebサービスを呼び出しますが、何らかの理由で、Webサービスが応答を正しく受信していません。

彼が開発したObjective-Cコードは次のとおりです。

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
NSData* requestData = [NSData dataWithBytes:[@"{\"method\":\"referrals\",
\"params\":
[{\"iv\":\"some iv value\",
\"data\":
{\"first_name\":\"pEBquIatFcWCrgEVHFhzhw==\",
\"cellular_ipv4\":\"ypMBZu80ZIeVrTpEH0daTg==\",
\"last_name\":\"353YvmRmSw9sKQ+lBrKKcg==\",
\"email\":\"tTiWcT14kuVVgmKuu7PoIw==\",
\"sent_via\":\"69JPdtxeHCAdG/cECGYg5A==\"}
}],
\"id\":\"1\"}" UTF8String] length:[reqString length]];


[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody: requestData];


if (urlConnection != nil) {
[urlConnection release];
urlConnection = nil;
}


urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
[request release];

私たちが知る限り、それはキー「紹介」に添付されたPOSTを介してデータを送信しています。ただし、私のPHPWebサービスが$_POST変数で「referrals」キーをチェックしても、それが見つかりません。関連するPHPコードは次のとおりです。

if(array_key_exists('referrals', $_POST))
{
    //some code
}else
{
    //error response
}

// Send JSON response
//header('Content-type: application/json');
echo $message;

iOSアプリは一貫してエラー応答を返します。これは、「referrals」が$_POSTに存在しない場合にのみ設定されます。CURLを使用してPHPWebサービスの単体テストを行い、一貫して成功した結果を取得しました。

エラーはどこにありますか?

4

3 に答える 3

2

代わりに、PHP行をこれにするべきではありませんか?

if(array_key_exists('method', $_POST))

これはサーバー側でデバッグする必要があります。たとえば、の内容をvar_dump($_POST)ファイルに書き込むことができます。

于 2012-05-16T22:19:35.593 に答える
0

これを試しているURLは何ですか?エミュレーターでこれを試して実行していて、PHPスクリプトがローカルホスト上にある場合、http://localhost/myscript.phpこのようなURLにアクセスしようとすると、エミュレーターが仮想マシンの場合は独自のローカルホストを持っている可能性があるため、機能しない可能性があります

Androidエミュレーターhttp://10.0.2.2では、ホストマシンへのアドレスです

于 2012-05-16T22:32:36.027 に答える
0

PHPコードが問題ではなく、POSTを介してリクエストを送信するために彼が使用していた方法であることが判明しました。彼がそれを機能させるためにそれを数回書き直さなければならなかったので、私は彼から特定の問題が何であるかを明確に知ることができませんでした。私の理解では、POSTデータを送信するObjective-Cの方法を微調整する必要がありました。

于 2012-08-29T22:07:01.643 に答える