如何让JSON响应HTTP请求
WebService能够以XML,纯文本和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>
如果您没有碰到错误的端点,您可能需要将http accept头设置为“application/json”,如@rckoenes所述。你也可以尝试使用CURL甚至是你的网页浏览器来查看服务是否在运行。
这里是它的工作对我来说,要求通过SOAPUI创建一个本地JSON服务代码:
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");
}
像魔术一样工作:)非常感谢。 – viral 2011-12-31 05:21:08
取决于web服务是如何写的......
我正在谈论的Web服务正在给我XML响应。它也给JSon(使用phoneGap的jQuery),我正在尝试制作Native iPhone App。所以,可以以JSon格式响应请求的任何特定方法。 – viral 2011-12-30 13:10:38
Refered它,但它给我的性反应中的XML。我想用JSon格式获取它。 – viral 2011-12-30 13:00:51
那么你必须给我们更多的信息,舔哪个webservice?只是说有些事情可以解决问题,不容易解决。我知道某些webservice查看HTTP请求的accept头,而其他的请求使用GET参数来返回JSON。 – rckoenes 2011-12-30 13:17:43
@rckoenes:编辑。 – viral 2011-12-30 13:38:02