如何从提供json输出的dot net web服务中检索值?

时间:2013-02-02 12:13:44

标签: .net ios

在我的应用程序中,我使用SBJson来解析值。 Web服务是以dot net开发的。使用php Web服务,代码工作得非常好,但是使用点网络Web服务时,这并没有显示响应值。代码中没有错误或异常或警告。

这是Web服务的JSON输出:

  

{“Head”:[{“id”:“0”,“msg”:“用户名或密码不匹配”}}}

这里的用户名密码错误,但我的代码甚至没有返回任何错误的值。

这是我的代码:

NSString *post = [NSString stringWithFormat:@"key=%@&username=%@&password=%@",key.text,[txtUsername text],[txtPassword text]];
NSLog(@"PostData: %@",post);

NSURL *url = [NSURL URLWithString:@"http://jabdcdfddfsd.aspx"];

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSLog(@"%@", postData);

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSLog(@"%@",postLength);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

NSLog(@"%@",request);
NSError *error = [[NSError alloc] init];
NSHTTPURLResponse *response = nil;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSLog(@"%@",response);

NSLog(@"Response code: %d", [response statusCode]);
if ([response statusCode] >=200 && [response statusCode] <300)
{
    NSString *responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
    NSLog(@"Response ==> %@", responseData)

帮助我。 responseData什么都没打印。我的代码中有任何问题,或者问题出在另一端,我的意思是在dotnet web服务中。

1 个答案:

答案 0 :(得分:1)

我认为如果代码在旧的php webservice上运行良好,你应该仔细查看你的.Net webservice。在某些方面它很可能是不同的。尝试使用Chrome Advanced REST client之类的内容来查看每个Web服务如何响应。