从iOS中的JIRA webservice获取JSON响应

时间:2014-01-22 19:20:26

标签: ios objective-c json web-services rest

我正在尝试使用iOS访问JIRA REST Web服务。我设法让请求工作,但响应不是JSON。我得到一个带有会话ID的响应以及来自此请求之前的登录请求的所有内容,并且此请求返回类似的响应,但返回的数据假定为JSON但看起来像:< 61737369 616e2e6e 65742f73 65637572 652f7072 (继续几行)>。我已经使用JMeter发出了相同的请求,并返回了一个JSON字符串,但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 个答案:

答案 0 :(得分:1)

您正在设置Content-Type标题,但您似乎没有发送任何内容。您似乎更应该设置Accept标题。

即使内容是字符串,也无法记录NSData实例并期望看到内容。记录时,尝试将数据转换为字符串(alloc, initWithData:)或反序列化JSON(JSONObjectWithData:options:error:)。