我只是在我的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宽带,希望它不是服务提供商的问题。有没有人发现这样的问题..
答案 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);
}