2017-01-10 16 views
0

私はデータベースを含むアプリケーションを開発中です。私はPHPを使ってMySQlデータベースに接続します。ここに私の接続コードは次のとおりです。iPhone経由でXcodeとPHPファイルを接続できません

var request = URLRequest(url: URL(string: "http://localhost/Workspace/Twitter/register.php")!) 
request.httpMethod = "POST" 
let body = "Username=\(UsernameTXF.text!.lowercased())&password=\(PassTXT.text!.lowercased())" 
request.httpBody = body.data(using: .utf8) 
let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, error == nil else {             // check for fundamental networking error 
    print("error=\(error)") 
    return 
} 

私はシミュレータ上でそれを実行すると、このコードは完璧に動作しますが、私はiPhone上でそれを実行すると、エラー次のように私を与える:

error=Optional(Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={NSUnderlyingError=0x17425dbb0 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey= http://localhost/Workspace/Twitter/register.php , NSErrorFailingURLKey= http://localhost/Workspace/Twitter/register.php , _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=61, NSLocalizedDescription=Could not connect to the server.})

答えて

3

あなたのiPhone上では「localhost」シミュレータを実行しているデスクトップ上の "localhost"とはまったく異なるものです。あなたのiPhoneでこのコードを実行する場合は、電話からに到達できるドメインを指定します。例えば、数字のIPアドレスを使用するか、Webサービスが実行されているドメインを指定します。

+0

ドメインを購入する必要がありますか? – user7302801

+0

お使いの携帯電話がwifiを使用してインターネットに接続している場合、おそらくあなたのワークステーションのIPアドレスを使用するだけかもしれませんが、これはあなたのWebサービスが動作しているLANに接続されている電話機でのみ機能します。電話が携帯電話サービス(Verizonなどを介してG4またはLTSなど)を使用してインターネットに接続する場合、ウェブサービスは広範なインターネット上の一般公開されているコンピュータによってホストされている必要があります。あなたのワークステーションにDynDNSを使うことができるかもしれません。 –

+0

これから私のアプリがappstoreにあるのかどうかは、これがmysqlにデータを挿入するのに最適で良い方法でしょうか? – user7302801

関連する問題