2010-10-27 41 views
0

我只是形成在我的OBJ-C代码,它从我的服务器调用PHP代码的请求ASIFormDataRequest NULL响应


ASIFormDataRequest *req = [[ASIHTTPRequest alloc] initWithURL:url]; 
[req setPostValue:[NSString stringWithFormat:@"%f",slat] forKey:@"mylat"]; 
[req setPostValue:[NSString stringWithFormat:@"%f",slng] forKey:@"mylng"]; 
[req start]; 
NSLog(@"response -",[req responseString]); 
[req release]; 

我没有得到在NSLog的响应,但它使用stringWithContentsOfURL运行得非常好,并且我可以在浏览器中看到输出。即使我将ASIFormDataRequest更改为ASIHTTPRequest并添加了User-Agent,但没有任何结果。我在不同版本的SDK中也检查过它,3.0,3.1.2,4.0,4.1。但没有任何反应

我相信从服务器的响应是好的,

一个更可悲的是,同样的ASI代码运行在我家,其具有优良的我的办公室网络(AIRTEL宽带)上,而不是一个BSNL宽带,希望它不是服务提供商的问题。

没有任何一个发现这样的问题..

+0

逐步通过代码并转储变量并添加更多信息,例如错误,返回的值等 – Jordan 2010-10-28 11:58:15

回答

0

尝试...

ASIFormDataRequest *req = [[ASIHTTPRequest alloc] initWithURL:url]; 
[req setPostValue:[NSString stringWithFormat:@"%f",slat] forKey:@"mylat"]; 
[req setPostValue:[NSString stringWithFormat:@"%f",slng] forKey:@"mylng"]; 

[req startSynchronous]; 
    NSError *error = [req error]; 
    if (!error) { 
     NSLog(@"response -",[req responseString]); 
    } 
[req release]; 
+0

感谢乔丹和乔希,我会在家里测试它,但我不知道它是如何在我的办公室运行,并且没有在家里运行 – 2010-10-28 09:09:44

+0

am仅在这里使用[req start]办公室 – 2010-10-28 09:11:08

+0

我试过了,但它不工作....现在,它也不在我的办公室网络工作..我不知道为什么... – 2010-10-28 10:28:21

1

代替:

[req start] 

尝试:

[req startSynchronous] 

一般而言,这是罚款要手动拨打-start一个NSOperation对象,但在这种情况下,ASIHTTPRequest明确提供了一个-startSynchronous方法,因此可能有一个很好的理由来使用它。

+0

最后,我得到了答案代理是问题,如果你发现同样的问题,只需检查您的网络设置中的代理服务器,我不知道abt windows,是在MAC上,因此它是一个chekbox使它发生,我使用的代码(出于安全目的) – 2010-11-01 11:35:55

0

最后,我得到了答案代理是问题,如果你发现相同的问题,只需检查您的网络设置中的代理,我不知道abt窗口,我在MAC上,所以它的理由是一个chekbox使它发生和我使用的代码(出于安全目的)

ASIFormDataRequest *req = [[ASIFormDataRequest alloc] initWithURL:url]; 
[req setDelegate:self]; 
[req startAsynchronous]; 
NSError *error = [req error]; 
if (!error) { 
    NSLog(@"response -",[req responseString]); 
} 
[req release]; 
[url release]; 
- (void)requestFinished:(ASIHTTPRequest *)request 
{ 
// Use when fetching text data 
NSString *responseString = [request responseString]; 
NSLog(@"response %d-%@",[responseString length],responseString); 
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; 
} 

- (void)requestFailed:(ASIHTTPRequest *)request 
{ 
NSError *error = [request error]; 
NSLog(@"error - %@\n",error); 
}