0

私のアプリでは、値の解析にSBJsonを使用しています。Webサービスはドットネットで開発されています。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は何も出力していません。私のコードに問題があるか、問題はもう一方の端にあります。つまり、ドットネットWebサービスに問題があります。

4

1 に答える 1

1

コードが古い php Web サービスで正常に機能する場合は、.Net Web サービスをじっくりと検討する必要があると思います。ある意味で違う可能性が高いです。Chrome Advanced REST クライアントなどを使用して、各 Web サービスがどのように応答するかを確認してください。

于 2013-02-03T21:55:51.290 に答える