【发布时间】:2013-02-28 16:44:33
【问题描述】:
我有一个基于另一个 JSON 请求的响应发送到服务器的 JSON 请求,我使用此方法检查正在使用哪个 NSURL 连接来处理响应:
if(connection == connection1) {
// Connection 1
} else if(connection == connection2) {
// Connection 2
}
它适用于第一个连接,它是这样发送的:
NSString *jsonStr = [NSString stringWithFormat:@"https://api.flightstats.com/flex/flightstatus/rest/v2/json/flight/status/%@/%@/dep/%@?appId=%@&appKey=%@&utc=false",airline.text,flightnumber.text,datestring,flightAPIIDstring,flightAPIkeystring];
NSURL *jsonurl = [NSURL URLWithString:jsonStr];
flightTrackJSONconnectionrequest = [NSURLRequest requestWithURL:jsonurl];
flighttrackJSONconnection =[[NSURLConnection alloc]
initWithRequest:flightTrackJSONconnectionrequest delegate:self];
if(flighttrackJSONconnection){
jsonresponse = [[NSMutableData alloc] init];
} else {
}
但是,在我的第一个连接(flighttrackJSONconnection)的 connectionDidFinishLoading 上,当我使用此代码时,根本没有发出第二个连接的请求:
NSString *departjsonStr = [NSString stringWithFormat:@"https://api.flightstats.com/flex/airports/rest/v1/json/iata/%@?appId=%@&appKey=%@",DepartACode,flightAPIIDstring,flightAPIkeystring];
NSURL *departjsonurl = [NSURL URLWithString:departjsonStr];
departairportcheckJSONconnection = [NSURLRequest requestWithURL:departjsonurl];
departairportcheckJSONconnection =[[NSURLConnection alloc]
initWithRequest:departairportcheckJSONconnectionrequest delegate:self];
if(departairportcheckJSONconnection){
departairportlookup = [[NSMutableData alloc] init];
} else {
}
我将 NSLog 检查添加到连接 didFailWithError、连接 didReceiveResponse 和 connectionDidReciveData 中,发现唯一发出的 NSURL 请求是我的 flighttrackJSONconnection 请求...
所以我想知道,我是否遗漏了代码中的某些内容,或者在调用 connectionDidFinishLoading 时根本无法发送另一个 NSURLRequest?
对不起,如果我看起来像个菜鸟,我只是有点困惑......
此外,所有 JSON 解析代码(至少对于 flighttrackJSONresponse 连接)和这些代码在 connectionDidFinishLoading 上都可以正常工作,所以它不像我在声明任何内容时犯了错误,如果它有任何区别,我正在尝试发送 2 个请求在 connectionDidFinishLoading 上,它们每个都在 .h 上声明了自己的 NSURLConnection 和 NSURLRequest 名称,我对两者都有同样的问题。
感谢任何提示或想法的家伙..
【问题讨论】:
-
您是否根据第一个 json 响应的参数发送第二个连接?
-
是的,我做到了,这可能是什么问题?
-
我发布了一个答案(作为建议)。看看吧!
-
你确定你没有调用 [flighttrackJSONconnection start] 方法并且请求仍然进行吗?
-
是的,唯一不起作用的是实际请求,我没有显示代码,但是在发送请求之前,它会从服务器中提取一个 API 密钥,我对其进行了测试并API 密钥被很好地提取,唯一的问题是它不想发送请求。
标签: json nsurlconnection nsurlrequest