【发布时间】:2014-09-11 11:39:36
【问题描述】:
我在尝试实现 NSURLConnetion 时遇到了问题。我想将图像和 GPS 数据从移动端发送到服务器并从中获得响应。我的应用程序在 wifi 上完美运行,但是当我尝试通过移动蜂窝或 3G 发送数据时。它不能工作。当我注销响应数据时,它是一个 html 页面并显示访问被拒绝。我不知道为什么会发生这种情况,有人能给我一些想法,提前谢谢!
还有,我尝试注销状态码,结果是200,所以我认为连接成功。
[self.request setAllowsCellularAccess:YES]; // Allow app to use celluar to send data
[self.request setHTTPMethod: @"POST"];
[self.request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[self.request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[self.request setHTTPBody: self.requestData];
self.connectionStatus.text = @"Data Sending";
[self.connection start];
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
self.connectionStatus.text = @"Transition complete";
NSString *serverResult = [self.responseFromServer objectForKey:@"result"];
NSString *r = [[NSString alloc] initWithData:_responseData encoding:NSUTF8StringEncoding];
NSLog(@"%@",r);
if([serverResult isEqualToString:@"true"])
{
[self navigateToMainPage];
[self.loadingIcon stopAnimating];
}
else
{
[self.noImageMatchedAlert show];
[self.loadingIcon stopAnimating];
}
下面的 HTML 代码是来自服务器的响应
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="css/default.css" />
<div id="title">
</th>
</div>
<div id="main">
<p id="summary">
No Entry
<img src="images/noEntry.jpg" alt="(-)" />
</p>
<p>Access denied.</p>
</div>
【问题讨论】:
-
这看起来像是服务器端问题,可能与设备的源 IP 地址有关。您需要访问服务器管理/日志文件才能进行诊断。
-
您好,感谢您的重播。我会检查服务器端。
标签: ios objective-c httprequest nsurlconnectiondelegate