Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何从提供json输出的dot net Web服务中检索值?_.net_Ios - Fatal编程技术网

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

.net 如何从提供json输出的dot net Web服务中检索值?,.net,ios,.net,Ios,在我的应用程序中,我使用SBJson解析值。web服务是在dotnet中开发的。对于PHPWeb服务,代码运行得很好,但是对于DotNetWeb服务,这并没有显示响应值。代码中没有错误、异常或警告 这是web服务的JSON输出: {“Head”:[{“id”:“0”,“msg”:“用户名或密码不匹配”}]} 这里的用户名密码是错误的,但我的代码甚至没有返回任何错误的值 这是我的代码: NSString *post = [NSString stringWithFormat:@"key=%@&

在我的应用程序中,我使用SBJson解析值。web服务是在dotnet中开发的。对于PHPWeb服务,代码运行得很好,但是对于DotNetWeb服务,这并没有显示响应值。代码中没有错误、异常或警告

这是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)
NSString*post=[NSString stringWithFormat:@“key=%@&username=%@&password=%@],key.text、[txtsername text]、[txtspassword text];
NSLog(@“PostData:%@”,post);
NSURL*url=[NSURL URLWithString:@”http://jabdcdfddfsd.aspx"];
NSData*postData=[post数据使用编码:NSASCIIStringEncoding allowLossyConversion:是];
NSLog(@“%@”,postData);
NSString*postLength=[NSString stringWithFormat:@“%d”,[postData长度]];
NSLog(@“%@”,postLength);
NSMutableURLRequest*请求=[[NSMutableURLRequest alloc]init];
[请求设置url:url];
[请求设置HttpMethod:@“POST”];
[请求设置值:HttpHeaderField的postLength:@“内容长度”];
[请求设置值:@“应用程序/json”用于HttpHeaderField:@“接受”];
[请求设置值:@“应用程序/x-www-form-urlencoded”forHTTPHeaderField:@“内容类型”];
[请求setHTTPBody:postData];
NSLog(@“%@”,请求);
NSError*error=[[NSError alloc]init];
NSHTTPURLResponse*响应=nil;
NSData*urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&响应错误:&错误];
NSLog(@“%@”,响应);
NSLog(@“响应代码:%d”,[Response statusCode]);

如果([response statusCode]>=200&&[response statusCode]我认为如果代码与旧的php Web服务配合得很好,您应该仔细检查一下您的.Net Web服务。很可能它在某些方面有所不同。尝试使用类似的方法来查看每个Web服务的响应。

urlData不是零,urlData.length>0,它是NSUTF8StringEncoding编码的?非常感谢您h以获取您的答案@Stig Brautaset,但我无法在您从应用程序调用的URL中看到此Chrome Advanced RESTPut中的内容。使用相同的输入比较两个服务的输出。它们是否相同?
({id=0;msg=“用户名或密码不匹配”;})
您能告诉我如何从该数组中检索“id”的值吗?我实际的问题是我从字典中以NSMutable数组的形式解析的上面一行,现在我想删除这些()brakets。@Stig Brautaset