我已经在这个错误/问题上自杀了几天了,我疯了。我不知道为什么它会破裂。我想知道你们和女士们是否可以借给我一把手,摆脱我的疯狂。所以,提前谢谢你。
我要做的是:从iphone应用程序(ios 4.3)将.wav文件上传到wcf json Web服务(.net 4.0)。我已经验证该服务可以在不同的客户端运行。
问题:问题是5天前工作的iPhone应用程序上的代码相同。昨天和今天代码决定不起作用。服务端和iPhone应用程序没有任何改变。
我会发布尽可能少的代码,以保持与主题相关且简单的内容。如果需要发布更多代码以使您更容易,我会。
我一直从didReceiveResponse方法的响应中获取状态代码400。我检查了多次发布的网址,网址似乎对我有用。
我发布到json Web服务的文件大小是1KB< fileSize< 450KB。
// ################################
- (id)init {
self = [super init];
if (self) {
self.sampleAppInstance = [sampleAppInstance sharedSampleAppInstance];
self.sampleAppUrl = @"http://random-ec2-id.us-east-1.elb.amazonaws.com/sampleApp/";
self.key = @"ee404d54-ea45-421a-9633-1ea35c0c211e";
self.token = self.sampleAppInstance.facebook.accessToken; // facebook access token
self.type = @"c";
self.platform = @"i";
}
return self;
}
// #################################
- (BOOL) save:(NSString *)_fileName {
NSString *url = [NSString stringWithFormat:@"%@?key=%@&token=%@&type=%@&platform=%@", self.sampleAppUrl, self.key, self.token, self.type, self.platform];
NSData *voiceData = [NSData dataWithContentsOfFile:_fileName];
//NSLog(@"%@", url);
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url]] autorelease];
[request setValue:@"text/plain" forHTTPHeaderField:@"content-type"];
[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%d", [voiceData length]] forHTTPHeaderField:@"content-length"];
[request setHTTPBody:voiceData];
[[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
return FALSE;
}
// #################################
- (void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
//NSLog(@"did failed");
[self.delegate responseDidFailWithError:error];
}
// #################################
- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
//NSLog(@"did receive data");
//NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
[self.delegate responseDidReceive:data];
}
// #################################
- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
int statusCode = [httpResponse statusCode];
// if get 400, then malform syntax
//NSLog(@"%d", statusCode);
if (statusCode != 200)
[self.delegate responseDidFailWithStatusCode:statusCode];
}
答案 0 :(得分:0)
事实证明我的服务只接受文件大小<默认为65k。修复是将我的服务配置为接受文件> 65K。