2011-12-30 5 views
0

WebService способен давать ответ в XML, Plain Text и JSon.Как получить ответ JSON на HTTP-запрос

Я могу успешно получить ответ в XML. Моя забота заключается в том, как можно получить ответ в формате JSon (а не XML или обычный текст).

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
    SBJsonParser *parser = [[SBJsonParser alloc] init]; 
    NSMutableArray *array = [parser objectWithString:responseString error:nil]; 

    NSString *success = [array valueForKey:@"Successful"]; 
    NSString *token = [array valueForKey:@"Token"]; 
} 

Выше приведен код обработки ответа (что я и предполагал JSon, но это был XML). Следовательно, приложение рушится.

Ниже приводится Быстродействие, который я получаю:

<AuthenticatedUser xmlns="http://schemas.datacontract.org/2004/07/XYZCOMPANY.ABC.DataContracts.Mobile" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ErrorMsg i:nil="true"/><Successful>true</Successful><Token>MHlc8yKBgghjkfPHZ2oOvabvMWA=</Token></AuthenticatedUser>

+0

Refered это, но это дает мне в XML товар. Я хочу получить его в формате JSon. – viral

+2

Ну, вы должны дать нам больше информации, Lick, какой веб-сервис? просто сказал, что какая-то вещь действительно работает, говоря, что это isn, 'очень легко решить. Я знаю, что некоторые веб-службы смотрят заголовок accept HTTP-запроса, а другие запрашивают параметр GET для возврата JSON. – rckoenes

+0

@rckoenes: отредактировано. – viral

ответ

1

Если вы не попадаете в неправильную конечную точку, вам, вероятно, необходимо установить заголовок http accept для «application/json», как сказал @rckoenes. Также вы можете попробовать воспользоваться службой CURL или даже вашим веб-браузером, чтобы узнать, работает ли служба json.

Вот код, он работает для меня запрашивает локальный сервис JSON, созданный SoapUI:

NSURLRequest *request = [[NSURLRequest alloc] 
         initWithURL: [NSURL URLWithString:SERVERURL] 
         cachePolicy: NSURLRequestReloadIgnoringLocalCacheData 
         timeoutInterval: 10]; 

NSURLConnection *connection = [[NSURLConnection alloc] 
         initWithRequest:request 
         delegate:self 
         startImmediately:YES]; 
if(!connection) { 
     DLog(@"connection failed"); 
} else { 
     DLog(@"Connection succeeded"); 

} 
+0

Работал как магия :) Большое спасибо. – viral

0

Зависит от того, как написано вебсервис ...

http://davidwalsh.name/web-service-php-mysql-xml-json

+0

Веб-сервис, о котором я говорю, дает мне ответ XML. И он также дает JSon (с помощью jQuery с помощью phoneGap), я пытаюсь сделать Native iPhone App. Таким образом, любой конкретный метод, который может ответить на запрос в формате JSon. – viral

-1

Импорт JSON рамки в приложении. Refer this

+0

Уже отправлено. Это дает мне ответ в формате XML. – viral

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