2014-01-22 3 views
0

Я пытаюсь получить доступ к веб-сервису JIRA REST с помощью iOS. Мне удалось получить запросы на работу, но ответ не JSON. Я получаю ответ с идентификатором сеанса и всем из запроса на вход, который предшествует этому, и этот запрос возвращает аналогичный ответ, но возвращаемые данные, которые предположительно являются JSON, но выглядят так: < 61737369 616e2e6e 65742f73 65637572 652f7072 (продолжается для нескольких строк)>. Я сделал те же запросы с JMeter, и ему возвращается строка JSON, но этого запроса в iOS нет.Получите ответ JSON от веб-службы JIRA в iOS

NSURL *url = [NSURL URLWithString:@"https://company.atlassian.net/rest/ 
      api/2/project"]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url2]; 
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type" ]; 
    [request setHTTPMethod:@"GET"]; 

    //Encoded authorization header 
    [request setValue:authValue forHTTPHeaderField:@"Authorization"]; 

    [NSURLConnection sendAsynchronousRequest:request queue: 
     [[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse 
      *response, NSData *data, NSError *error){ }]; 

Я пытался манипулировать Content-Type, пробуя случайные разные вещи, но никто не работал. Любые идеи о том, как заставить его вернуть JSON?

+1

Результат '<61737369 616e2e6e 65742f73 65637572 652f7072' выглядит как результат регистрации' NSData', и это шестнадцатеричные коды. Первые несколько представляют текст «assian.net/secure/» – rmaddy

+0

Интересно. Хорошо знать, что информация есть, просто закодирована в hexidecimal. Я действительно не понимаю, почему я получаю этот формат здесь, но JSON, если я сделаю тот же запрос от JMeter. – Maroon5Five

+0

Вы возвращаетесь к объекту 'NDData'. Это то, что вы зарегистрировали. Данные могут быть текстовыми, или это может быть JSON (который является только специально отформатированным текстом). – rmaddy

ответ

1

Вы устанавливаете заголовок Content-Type, но, похоже, вы не отправляете какой-либо контент. Похоже, вы должны установить заголовок Accept.

Вы не можете зарегистрировать экземпляр NSData и ожидать увидеть содержимое, даже если содержимое является строкой. Когда вы регистрируетесь, попробуйте преобразовать данные в строку (alloc, initWithData:) или десериализовать JSON (JSONObjectWithData:options:error:).

Смежные вопросы