ios 4.3 загрузка файла в веб-сервис wcf json - PullRequest
1 голос
/ 28 сентября 2011

Я уже несколько дней убиваю себя из-за этой ошибки / проблемы, и я схожу с ума. Я понятия не имею, почему это перерыв. Мне было интересно, если вы, ребята, можете помочь мне и избавитесь от моего безумия. Так что заранее спасибо.

Что я пытаюсь сделать: загрузить файл .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];
    }

1 Ответ

0 голосов
/ 01 октября 2011

получается, что мой сервис по умолчанию принимает только размер файла <65k.исправление состояло в том, чтобы настроить мой сервис для приема файла> 65k.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...