2014-01-22 172 views
0

我正在嘗試使用iOS訪問JIRA REST webservice。我設法讓請求起作用,但響應不是JSON。我得到了一個會話ID以及來自此之前的登錄請求的所有內容的響應,並且此請求返回了類似的響應,但返回的數據假設爲JSON,但看起來像:< 61737369 616e2e6e 65742f73 65637572 652f7072(繼續幾行)>。我用JMeter做了同樣的請求,它返回了一個JSON字符串,但是這個請求在iOS中沒有。從iOS的JIRA webservice獲取JSON響應

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){ }]; 

我試圖操縱內容類型嘗試隨機不同的事情,但都沒有工作。任何想法如何讓它返回JSON?

+1

結果'<61737369 616e2e6e 65742f73 65637572 652f7072'看起來像記錄'NSData'的輸出,而那些是十六進制代碼。前幾個代表文本「assian.net/secure/」 – rmaddy

+0

有趣。很高興知道這些信息在那裏,只是以十六進制編碼。我真的不明白爲什麼我在這裏得到這種格式,但如果我從JMeter發出相同的請求,那麼JSON。 – Maroon5Five

+0

您正在取回一個'NDData'對象。這就是你所記錄的。數據可以是文本,也可以是JSON(只是特殊格式的文本)。 – rmaddy

回答

1

您正在設置Content-Type標題,但您似乎沒有發送任何內容。看起來更像是你應該設置Accept標題。

無法登錄NSData實例並期望看到內容,即使內容是字符串。在登錄時,嘗試將數據轉換爲字符串(alloc, initWithData:)或反序列化JSON(JSONObjectWithData:options:error:)。