【发布时间】:2011-07-08 14:33:45
【问题描述】:
我在设备中连接了 wifi - 所以这被排除了。
执行以下相同代码的应用程序能够将文件上传到 iOS 4.3 模拟器中的 java 服务器,但无法在 iOS 4.3.3 设备中上传。这有点奇怪。
ASIFormDataRequest *request_zip = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:strURL]];
[request_zip setAllowCompressedResponse:YES];
[request_zip setPostValue:@"device" forKey:@"value1"]; //pass device ID here...
//[request_zip addRequestHeader:@"Content-Type" value:@"multipart/form-data"];
[request_zip setTimeOutSeconds:20];
[request_zip setDelegate:self];
[request_zip setDidFailSelector:@selector(uploadFailed:)];
[request_zip setDidFinishSelector:@selector(uploadFinished:)];
[request_zip setFile:path forKey:path];
[request_zip startAsynchronous];
NSLog(@"%@ post length",[NSString stringWithFormat:@"%llu",[request_zip postLength]]);
代码在执行时会在终端中产生以下输出。
检测到不正确的 NSStringEncoding 值 0x0000。假设 NSStringEncodingASCII。将在不久的将来停止这种兼容性映射行为。
在控制台打印的帖子长度 =>
0 帖子长度
最后还有一个字符串,即超时消息,
请求失败: 请求因响应数据而超时
100% 确保服务器处于活动状态并立即响应从模拟器执行的应用程序。
如何让程序在模拟器中正常运行但在设备中不运行?
【问题讨论】:
-
strURL 完全没问题。当有响应时,代表也能完美执行。
-
您发送的文件有多大?
-
30kb 压缩和密码保护的 zip 文件。
-
我终于认为问题出在服务器端的 java 程序中了..让我们看看..我还不太确定。
-
我同意,你可能会想使用 Fiddler,基本上在 Fiddler 中设置一个远程代理,然后告诉你的 iPad 使用代理,一旦你这样做了,你可以看到流量,它会让调试更容易ravelrumba.com/blog/ipad-http-debugging
标签: objective-c asihttprequest ios4