【发布时间】:2013-09-25 07:03:16
【问题描述】:
我有一个奇怪的问题,我正在处理一个我必须从服务器请求的项目,当使用 GET 方法请求不带参数的 URL 时,它工作正常并返回所需的数据,但是当使用相同的代码调用URL并向其发送参数时,它会失败并出现以下错误:
error: Error Domain=NSURLErrorDomain Code=-1001 UserInfo=0xed4870 "timed out"
我的代码如下:
NSString *param = @"pageNumber=2";
NSURL *url = [NSURL URLWithString:@"http://myWebsite/api/Soccor/"];//When using this, it works fine
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://myWebsite/api/Soccor?%@", param]];//When using this, it gives me the request time out error.
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
[theRequest addValue:@"application/json;charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue:@"application/json" forHTTPHeaderField:@"Accept"];
[theRequest addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"GET"];
[theRequest setTimeoutInterval:10];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
知道为什么它在使用URL 发送参数时返回错误吗?
【问题讨论】:
-
一旦检查你的 url 格式在传递参数时,你可能需要为该参数值提供任何键。
-
@kalyanipuvvada 你能解释一下吗!?你的评论我不清楚。
-
@Rob 我已经在浏览器中测试了 URL,它工作正常,这是最奇怪的部分。关于您在标题上的观点,为什么它适用于第一个 URL,但第二个却不行!?
-
@Rob 看来你是对的,问题是
Content-Length,当我删除它时,它工作正常。请回答问题,以便我接受。但是怎么会出现这个错误,如果有什么解释请告诉我。 -
@Scar 至于为什么它的行为与您发送格式错误的请求时的行为完全相同,我不知道。我怀疑这取决于您将
msgLength设置为什么(您从未向我们展示过)以及您的服务器是如何配置的(看到不同的服务器对这些错误条件的响应不同,我不会感到惊讶)。
标签: objective-c json nsurlconnection nsurlrequest request-timed-out