[英]ASIFormDataRequest NULL response
我在我的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,但没有任何效果。 我也在3.0、3.1.2、4.0、4.1的不同版本的SDK中进行了检查。 但没有回应
我确信服务器的响应很好,
更令人难过的是,相同的ASI代码可以在我的办公室网络(AIRTEL Broadband)上正常运行,而不能在拥有BSNL宽带的家中正常运行,希望这不是服务提供商的问题。
有没有人发现这样的问题。
代替:
[req start]
尝试:
[req startSynchronous]
通常,可以在NSOperation
对象上手动调用-start
NSOperation
,但是在这种情况下, ASIHTTPRequest
显式提供了-startSynchronous
方法,因此可能有充分的理由使用它。
尝试...
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];
最后,我得到了代理是问题的答案,如果您发现相同的问题,只需检查网络设置中的代理,我不知道abt窗口,在MAC上,因此它很容易实现,代码我二手车(出于安全目的)
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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.