ASIFormDataRequest NULL响应

时间:2010-10-27 19:26:29

标签: iphone objective-c

我只是在我的Obj-c代码中形成请求,该代码从我的服务器调用PHP代码


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宽带,希望它不是服务提供商的问题。

有没有人发现这样的问题..

3 个答案:

答案 0 :(得分:1)

而不是:

[req start]

尝试:

[req startSynchronous]

通常可以在-start对象上手动调用NSOperation,但在这种情况下,ASIHTTPRequest显式提供-startSynchronous方法,因此可能有一个好处使用它的原因。

答案 1 :(得分: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];

答案 2 :(得分:0)

最后我得到了代理是问题的答案,如果你发现同样的问题,只需检查网络设置中的代理,我不知道abt windows,我在MAC上,所以它的jus是一个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);
}