【发布时间】:2013-08-28 10:02:29
【问题描述】:
我想发布一条 json 消息以发送到服务器。我无权访问服务器本身,但我知道它正在工作并设置为在消息通过时返回成功/失败消息。服务器需要应用 ID 和密码才能连接
我为此使用 AFNetworking。这是我正在使用的代码:
NSURL* pushServerURL = [NSURL URLWithString: @"http://myserverurl.com/"];
AFHTTPClient* networkInstance = [[AFHTTPClient alloc] initWithBaseURL: pushServerURL];
NSDictionary *parameters =[NSDictionary dictionaryWithObjectsAndKeys:
@"myappid", @"app_id", @"mypassword", @"password", nil];
NSDictionary *params =[NSDictionary dictionaryWithObjectsAndKeys:
parameters, @"user", nil];
[networkInstance postPath: @"users/login.json"
parameters: params
success:^
(AFHTTPRequestOperation *operation, id jsonResponse)
{
NSLog (@"SUCCESS");
}
failure:^
(AFHTTPRequestOperation *operation, NSError *error)
{
NSLog(@"FAILED");
}];
它总是失败,错误代码为 -1001。
NSError 在用户信息中有 4 个键
NSErrorFailingURLStringKey with value @"http://myserverurl.com/,
NSErrorFailingURLKey with value <not an Objective-C object>,
NSLocalizedDescription with value "The request timed out"
NSUnderlyingError and the value has no string.
知道我做错了什么吗?
【问题讨论】:
-
-1001 通常表示请求超时。您的网络工作正常吗?
-
我们有没有机会得到错误代码附带的错误描述?那么尝试与原生
NSURLConnection相同呢? -
网络应该工作正常。其他几个应用程序目前正在使用它并正常工作。我不知道如何使用 NSURLConnection,我对这个网络编程的东西完全不在我的舒适区。该错误返回了 4 个键,其中 NSErrorFailingURLStringKey 的值为 myurl,NSErrorFailingURLKey 的值为
,NSLocalizedDescription 的值为“请求超时”和 NSUnderlyingError,并且该值没有字符串。我将更新问题以包含这些错误字符串。 -
您已经在更新的帖子中描述了错误:
the request timed out。您尝试发布的 URL 很可能无法访问。尝试使用 Safari 访问它。如果它响应 GET 请求,该实验应该会显示连接错误。否则,如果连接正常,但不允许使用 POST 方法,那么您将收到与该原因对应的服务器错误。 -
是的,服务器是问题所在。我在另一台服务器上尝试过,效果很好。不确定如何回答这个问题,因为它在 cmets 中。
标签: ios afnetworking