0

例如,我有这样的 URL:

http://somedomain.com/mi3/marketInfoData?request=login&user=user&password=password

但为什么 URL 字符串与我想要的不一样......它返回

http://somedomain.com/mi3/marketInfoData/?request=login&user=user&password=pass

这是我的 NSurl 请求

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://somedomain.com/mi3/marketInfoData?request=login&user=user&password=pass"]];

错误:

AFNetworkingOperationFailingURLRequestErrorKey=<NSMutableURLRequest http://somedomain.com/mi3/marketInfoData/?request=login&user=user&password=pass <--error

我收到这样的错误,因为它在“?”之前有“/” 我该如何逃脱它?

4

1 回答 1

2

从文档中:

另外需要注意的是,尾部斜杠将被添加到任何 baseURL没有斜杠的地方,否则在使用不带前导斜杠的路径构造 URL 时会导致意外行为。

试试这个模式:

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://somedomain.com/mi3/"]];

NSDictionary *params = @{@"request": @"login", @"user" : @"user", @"password" : @"pass"};

[httpClient getPath:@"marketInfoData" parameters:params success:nil failure:nil];

显然,您并不想使用nil成功和失败块。

您通常应该为您要访问的每个 API 创建一个 AFHTTPClient(大多数应用程序只有一个。)为每个请求创建一个新的 AFHTTPClient 是错误的。

于 2013-09-16T17:31:32.277 回答