在我的Iphone应用程序中,我使用AFNetworking将一些数据发送到网络服务并获取一些数据......
这是我的例子,我总是把“假”作为回应,我做错了什么?
NSURL *baseURL = [NSURL URLWithString:@"http://myPath/Iphone/method"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:baseURL];
[httpClient defaultValueForHeader:@"Accept"];
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
[udid copy], @"uuid",
nil];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"http://myPath/Iphone/method" parameters:params];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[httpClient registerHTTPOperationClass:[AFXMLRequestOperation class]];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
response = [operation responseString];
NSLog(@"response: %@",response);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error: %@", [operation error]);
}];
[operation start];
编辑:我在Url中调用的方法返回一个字符串(没有字符串不是false)
[HttpPost]
public bool checkIphone(string uuid)
{
IDictionary<string,object> check = Request.Properties;
uuid = check["uuid"].ToString();
//do anything with the uuid
if (1<0)
{
return true;
}
else
{
return false;
}
}
这个方法我用我的iphone打电话,而且通常它应该返回xml或?
答案 0 :(得分:5)
您正在使用复杂的方法来构建操作,但它会起作用。 但它应该工作,你缺少的是分配XMLparser。 在AFXMLRequestOperation的文件中说明了。
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"http://myPath/Iphone/method" parameters:params];
AFXMLRequestOperation *operation = [[AFXMLRequestOperation alloc] initWithRequest:request];
operation.responseXMLParser = xmlParser; //Here you should assign an instance of NSXMLParser to handle you XML parsing.
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
response = [operation responseString];
NSLog(@"response: %@",response);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error: %@", [operation error]);
}];
此外,无需通过AFHTTPClient
制作NSURLRequest,您可以轻松创建自己的NSURLRequest或使用AFHTTPClient
为您创建AFHTTPRequestOperation
。< / p>
使用AFHTTPClient返回服务器返回的内容:
// Don't include the method here
NSURL *baseURL = [NSURL URLWithString:@"http://myPath/Iphone/"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:baseURL];
[httpClient defaultValueForHeader:@"Accept"];
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
[udid copy], @"uuid",
nil];
[httpClient postPath:@"method" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
// reponseObject will hold the data returned by the server.
}failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error retrieving data: %@", error);
}];
答案 1 :(得分:-1)
你这里有错字吗? [udid copy], @"uuid",