我正在开发一个消息传递应用程序,其中所有消息都临时存储在服务器中。 我有以下代码。
NSURL *url = [NSURL URLWithString:[BARAppDelegate returnsendmessageurl]];
ASIFormDataRequest *request1 = [ASIFormDataRequest requestWithURL:url];
[request1 setPostValue:usernameEmailid forKey:@"username"];
[request1 setPostValue:messagebody forKey:@"MessageBody"];
[request1 setPostValue:receipientnumber forKey:@"RecipientMobileNumber"];
[request1 setPostValue:sendermobilenumber forKey:@"SenderMobileNumber"];
[request1 addData:nil withFileName:@"ipodfile.jpg" andContentType:@"application/octet-stream" forKey:@"photos"];
[request1 setDelegate:self];
[request1 setPersistentConnectionTimeoutSeconds:30];
[request1 setShouldAttemptPersistentConnection:YES];
[request1 startAsynchronous];
当我检查服务器上的数据库时,令人惊讶的是它只对所有参数(usernameEmailid,messagebody,receipientnumber,sendermobilenumber)采用了空值。我在提出请求之前就已经完成了所有这些价值观,他们似乎很好。
注意:这不会一直发生。它几次发生。此外,只有在我尝试回复收件箱中的现有邮件时才会发生这种情况。当我尝试发送新消息时,它不会发生。
我在这里做错了吗?答案 0 :(得分:0)
您正在使用和异步连接,并且能够在您或您的服务器端知道是否出现问题,您应该在致电之前实施以下方法
[request1 startAsynchronous];
添加:
[request1 setDidFinishSelector:@selector(uploadRequestFinished:)];
[request1 setDidFailSelector:@selector(uploadRequestFailed:)];
并实施此方法:
- (void)uploadRequestFinished:(ASIHTTPRequest *)request{
NSData *responseData = [request responseData];
// Store incoming data into a string
NSString *response = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"Server response:%@", response);
}
- (void)uploadRequestFailed:(ASIHTTPRequest *)request{
NSLog(@"[TWDEBUG] Error - upload failed: \"%@\"",[[request error] localizedDescription]);
}