2012-01-13 4 views
-1

以下は、サーバー内のターゲットPHPファイルの最初の部分です。
私のiPhoneアプリはサーバーのPHPファイルにデータを送ることができますか?

$xmlFile = file_get_contents("php://input"); 
echo $xmlFile."<br>"; 

残念ながら、ブラウザのページには何も印刷されていません。

次は、接続オブジェクトがnilでない私のiphone側プログラミング

NSURL *url = [NSURL URLWithString:@"http://www.mywebsite.com/target.php"]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content- Type"]; 

NSMutableData *xmlData = [NSMutableData data]; 
[xmlData appendData: [[NSString stringWithFormat: @"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"] dataUsingEncoding: NSUTF8StringEncoding]]; 
[xmlData appendData: [[NSString stringWithFormat: @"<Packet xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance iphone_schema.xsd\" xmlns=\"http://www.mywebsite.com/iphone.xsd\">"] dataUsingEncoding: NSUTF8StringEncoding]]; 
[xmlData appendData: [[NSString stringWithFormat: @"<info1>%@<info1>",self.uuid] dataUsingEncoding: NSUTF8StringEncoding]]; 

//....append xml data strings in the same way 
[request setHTTPBody:xmlData]; 
NSURLConnection *connect = [NSURLConnection connectionWithRequest:request delegate:self]; 
if(connect != nil){ 
    NSLog(@"valid request"); 
} 

の一部です。しかし、私はアプリがPHPページにリクエストPOSTメッセージを送信したかどうかはわかりません。

そして私は、接続をテストするために、そのPHPファイル内のいくつかのコードを書きました。それは何もiphoneから受信されないようです。何が起こっているのですか?私はすでに数時間それをテストする!
誰かが私を助けることを願っています!ありがとう!

答えて

1

セットアップあなたのNSURLConnection delegate methods。これにより、問題をよりよく診断し、iPhoneまたはサーバー側にあるかどうかを確認するのに役立ちます。

また、POSTリクエストを送信した場合。 PHPの入力ストリームから読み込む必要はありません。 $_POST super globalを使用してください。

また、あなたのPHPスクリプトはそれをコマンドラインからのリクエストを送信することによって、正しいことを確認することができます。 * nixの場合はcurlとなります。

0

ngrepを試してください。それは助けるかもしれない。セットアップhomebrew

しようとすることで

スタートはその後

brew install ngrep 

、その後

sudo ngrep host mywebsite.com port 80 

を行うこれは、名前がMyWebSiteで、デバイスとサーバーとの間で送受信されたのデータを表示する必要があります.com。

0

$ XMLFILE =のfile_get_contents( "PHP://入力"); echo $ xmlFile。 "
";あなたがPHPにあなたのiOSの記事場合何が起こっているかではなく、あなたが後にPHPを訪れ入力に投稿されたブラウザからそれを見た場合

これは何かをエコーでしょう。

一般的に、あなたは、この方法では、すべてのそれを検証することはできません。 PHPでレスポンスをデザインし、PHPが返すものを処理するデリゲートメソッドを設定する必要があります。

のような:

$xmlFile = file_get_contents("php://input"); 
if ($xmlFile) { 
echo "{\"file\":\"$xmlFile\"}"; 
} 

あなたはNSJSONSerializerとiOSの中に応答をデコードして、返されたものと同じであった掲示内容を表示することができ、この方法で。 }

関連する問題