Я уже несколько дней убиваю себя из-за этой ошибки / проблемы, и я схожу с ума. Я понятия не имею, почему это перерыв. Мне было интересно, если вы, ребята, можете помочь мне и избавитесь от моего безумия. Так что заранее спасибо.
Что я пытаюсь сделать: загрузить файл .wav в веб-службу wcf json (.net 4.0) из приложения iphone (ios 4.3). Я убедился, что служба работает с другого клиента.
Проблема: проблема в том же коде в приложении для iphone, которое работало 5 дней назад. Вчера и сегодня код решил не работать. Ничего не изменилось в сервисной части и приложении для iphone.
Я выложу как можно меньше кода, чтобы все было просто и понятно для темы. Если потребуется опубликовать больше кода, чтобы вам было легче, я сделаю это.
Я последовательно получаю код состояния 400 из ответа в методе didReceiveResponse. Я проверил URL, который я публикую много раз, и этот URL мне кажется действительным.
Размер файла, который я публикую в веб-службе json, составляет 1 КБ
Вот пример URL, который я публикую на:
http://random -ec2-id-east-1.elb.amazonaws.com / SampleApp /? Ключ = ee404d54-ea45-421a-9633-1ea35c0c211e и маркер = zJSRqiZgmU6nOW44CeAzhWYxasdD0158yysNDCiASMk.eyJpdiI6IlU3Y2UwbWNXVGN6WVVBLU42SDVieGcifQ.kLbcRPOJ_QnrrtsBe-zF2-2IIbAffArvqeyAmwp_OpOWAoADMugHYjTPcnjkjQvzxEIMcm2k3933i3GqF2YFhAFDtItwvqre5fIGlixbuwsYhrVCm9FBoue4dCQ_pPX-yjUtq_898FGWa5INl0RG0A и тип = с & платформы = я
// ################################
- (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];
}