Passage de paramètre dans l'url pour OBTENIR la méthode à l'aide de afnetworking

j'ai l'url de la requête est exécutée.

https://<BASE_URL>/<TENANT_URL>/?query=where UserName='abc'&companyId=&page=1&pageSize=25&filterResultByColumns=true

je suis de s'échapper de la partie restante après locataire url comme ceci,

 NSString *requestUrl = [[NSString stringWithFormat:@"%@/?query=where UserName='%@'&companyId=&page=1&pageSize=25&filterResultByColumns=true",<TENANT_URL>,userCredential.userName]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    requestUrl = [NSString stringWithFormat:@"%@/%@",baseurl,requestUrl];

Voici ma requête GET.

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
        AFHTTPResponseSerializer *serializer = [AFHTTPResponseSerializer serializer];

            serializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"];


        manager.responseSerializer = serializer;
        manager.requestSerializer = [AFJSONRequestSerializer serializer];
    NSString *path = [NSString stringWithFormat:@"%@",URL];


    [manager GET:path parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
                    NSError* error = nil;
                    NSArray* json = [NSJSONSerialization
                                          JSONObjectWithData:responseObject

                                          options:kNilOptions 
                                          error:&error];
                    success(json);
                }
                     failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                         failure(error);
                     }];

Mais j'ai toujours l'obtention d'un 400 Bad request error. Je pense que le problème est avec la requête"=..". Mais je ne suis pas sûr. Comment puis-je analyser l'URL. J'ai testé avec "FACTEUR" dans Chrome. Il fonctionne parfaitement. Mais il me lance une erreur quand je lance l'application.

Erreur:

Error Domain=AFNetworkingErrorDomain Code=-1011 "Request failed: bad request (400)" UserInfo=0xb7ac2b0 {NSErrorFailingURLKey=https://<BASE_URL>/<TENANT_URL>/?query=where UserName='abc'&companyId=&page=1&pageSize=25&filterResultByColumns=true&url=https%3A%2F%2F<BASE_URL>%2F%2F<TENANT_URL>%2F%3F?query=where%2DUserName%3D%27abc%27%26companyId%3D%26page%3D1%26pageSize%3D25%26filterResultByColumns%3Dtrue, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0xb7e6910> { URL: https://<BASE_URL>/<TENANT_URL>/?query=where UserName='abc'&companyId=&page=1&pageSize=25&filterResultByColumns=true&url=https%3A%2F%2F<BASE_URL>%2F%2F<TENANT_URL>%2F%3F?query=where%2DUserName%3D%27abc%27%26companyId%3D%26page%3D1%26pageSize%3D25%26filterResultByColumns%3Dtrue } { status code: 400, headers {
    "Cache-Control" = private;
    "Content-Length" = 0;
    "Content-Type" = "text/html";
    Date = "Fri, 17 Jan 2014 05:29:56 GMT";
    Server = "Microsoft-HTTPAPI/2.0";
    "X-AspNet-Version" = "4.0.30319";
    "X-Powered-By" = "ASP.NET";
} }, NSLocalizedDescription=Request failed: bad request (400)}
stackoverflow.com/a/18573417/2439156
L'erreur que vous avez posté, ce qui semble indiquer que vous n'avez pas mis les valeurs réelles dans votre URL - c'est montrer: https://<BASE_URL>/<TENANT_URL>/?query=where UserName='abc'&companyId=&page=1&pageSize=25&filterResultByColumns=true&url=https%3A%2F%2F<BASE_URL>%2F%2F<TENANT_URL>%2F%3F?query=where%2DUserName%3D%27abc%27%26companyId%3D%26page%3D1%26pageSize%3D25%26filterResultByColumns%3Dtrue, qui ne contiennent pas de véritable adresse web de frapper. Êtes-vous sûr que vous êtes en passant l'URL que vous avez créé à AFNetworking?
Oui il a une réelle adresse web. J'ai posté ici avec mannequin d'URL. J'ai parcouru l'url dans le navigateur chrome. Il semble de travail. Mais lorsque je l'exécute sur simulateur. j'obtiens cette erreur.
En passant query=where UserName='abc' dans le cadre d'une URL semble être une mauvaise idée - cela fait-il partie d'un raw de requête SQL? Si oui, votre service web a vraiment besoin d'un peu d'attention, car il est probable vulnérables à une attaque par injection SQL. Il également n'a pas l'air de s'échapper correctement, que vous avez encore un espace de, les " marques, et un symbole égal.
Lors de la décodage la % codé composant de requête enregistrée dans le message d'erreur, j'obtiens ceci: where-UserName='abc'&companyId=&page=1&pageSize=25&filterResultByColumns=true. Le trait d'union "-" après "où" est certainement pas correct. Donc, je me demandais comment vous precent codé de la requête d'origine du composant.

OriginalL'auteur iPhone Guy | 2014-01-17