2012-05-04 52 views
1

我正在使用ASIHTTPRequest类用我的iPhone应用程序创建一些Web服务。下面是我用的是无法连接到PHP API

-(void)startRequest { 
    NSURL *url = [NSURL URLWithString:@"www.myURL/iOS/objc.php"]; 
    //NSURL *url = [NSURL URLWithString:@"http://localhost:8888/API/objc.php"]; 
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
    [request setDelegate:self]; 
    [request setPostValue:@"1" forKey:@"getWines"]; 
    [request startAsynchronous]; 
} 

,显然我赶,结果在这个函数的一些示例代码:

- (void)requestFinished:(ASIHTTPRequest *)request { 
    NSString *result = request.responseString; 
} 

当我启动模拟器与本地主机URL

NSURL *url = [NSURL URLWithString:@"http://localhost:8888/API/objc.php"]; 

我应用程序很好。但是,当我

  • 启动与我的设备
  • 启动与模拟器到服务器位置

什么也没有发生!我的意思是,requestFinished永远不会被调用!

如果我尝试使用谷歌浏览器,我得到了一些答案,但两者的条件都不高。

+1

好吧,它不会在具有'localhost' url的设备上工作,原因很明显。它是否适用于生产网址_anywhere_? –

+0

你是什么意思与“生产网址的任何地方工作吗?”?,就像如果我运行与生产网址的模拟器上我的应用程序?在这种情况下,它是行之有效的。 – Edelweiss

+0

使用CharlesProxy查看正在发生的事情。也可以尝试为ASIHTTPRequest的requestFailed委托方法添加一个处理程序,因为由于某种原因,请求几乎肯定会失败。 – JosephH

回答

0

我终于发现有什么不妥,这是因为我写的 “www.myURL /的iOS/objc.php” 而不是

的“http://www.myURL /iOS/objc.php“,

改变一切!