Objective c 带有URL参数的断言失败

Objective c 带有URL参数的断言失败,objective-c,url,assertions,Objective C,Url,Assertions,在我的项目中,我需要向客户端发送电子邮件,但我面临断言失败和无效参数。我已经检查了所有的解决方案,但都不起作用 -(void)EmailWebservice { [MBProgressHUD showHUDAddedTo:self.view animated:YES]; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; AFJSONRequestSerial


在我的项目中,我需要向客户端发送电子邮件,但我面临断言失败和无效参数。我已经检查了所有的解决方案,但都不起作用

-(void)EmailWebservice
{
    [MBProgressHUD showHUDAddedTo:self.view animated:YES];

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
    [serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    manager.requestSerializer = serializer;

    NSString *getPostLink = [NSString stringWithFormat:@"http://Dummy.com/sendmail/?business_email=%@&_name=%@",TextEmail.text,[[NSUserDefaults standardUserDefaults]valueForKey:@"USERNAME"]];

    NSString *encoded = [getPostLink stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSLog(@"Encoding value is %@",encoded);

    [manager GET:getPostLink parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSLog(@"JSON: %@", responseObject);
        [MBProgressHUD hideHUDForView:self.view animated:YES];

}failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSLog(@"the failure is %@", error);
        [MBProgressHUD hideHUDForView:self.view animated:YES];

    }];
}
错误:

由于未捕获异常而终止应用程序 'NSInternalInconsistencyException',原因:'无效参数不存在 令人满意的:URLString'


错误是告诉您的URL有问题。我会先打印出url,就像您使用该行所做的那样:

NSLog(@"Encoding value is %@",encoded);
你能把它粘贴到你选择的浏览器中,看看页面是否加载吗

您可能正在尝试对url中的参数值进行硬编码:

business_email
fave_customer_name
对参数进行编码:

-(void)EmailWebservice
{
    [MBProgressHUD showHUDAddedTo:self.view animated:YES];

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
    [serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    manager.requestSerializer = serializer;

    NSString *email = [TextEmail.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSString customer = [[NSUserDefaults standardUserDefaults]valueForKey:@"USERNAME"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSString *getPostLink = [NSString stringWithFormat:@"http://Dummy.com/csrestapi/sendintroemail/?business_email=%@&fave_customer_name=%@",email,customer];

    NSString *encoded = [getPostLink stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSLog(@"Encoding value is %@",encoded);

    [manager GET:getPostLink parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSLog(@"JSON: %@", responseObject);
        [MBProgressHUD hideHUDForView:self.view animated:YES];

    }failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSLog(@"the failure is %@", error);
        [MBProgressHUD hideHUDForView:self.view animated:YES];

    }];
}

您应该阅读这篇文章,因为它涵盖了此类问题。

错误告诉您的URL有问题。我会先打印出url,就像您使用该行所做的那样:

NSLog(@"Encoding value is %@",encoded);
你能把它粘贴到你选择的浏览器中,看看页面是否加载吗

您可能正在尝试对url中的参数值进行硬编码:

business_email
fave_customer_name
对参数进行编码:

-(void)EmailWebservice
{
    [MBProgressHUD showHUDAddedTo:self.view animated:YES];

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
    [serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    manager.requestSerializer = serializer;

    NSString *email = [TextEmail.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSString customer = [[NSUserDefaults standardUserDefaults]valueForKey:@"USERNAME"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSString *getPostLink = [NSString stringWithFormat:@"http://Dummy.com/csrestapi/sendintroemail/?business_email=%@&fave_customer_name=%@",email,customer];

    NSString *encoded = [getPostLink stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSLog(@"Encoding value is %@",encoded);

    [manager GET:getPostLink parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSLog(@"JSON: %@", responseObject);
        [MBProgressHUD hideHUDForView:self.view animated:YES];

    }failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSLog(@"the failure is %@", error);
        [MBProgressHUD hideHUDForView:self.view animated:YES];

    }];
}

您应该阅读这篇文章,因为它涵盖了此类问题。

是否打算将
查询
分隔符
放在
路径
的最后一个
/
之后?请尝试URL编码您的参数。您的URL中可能有空格或其他非URL字符,因为您直接在其中替换电子邮件地址和客户名称。有关如何更优雅地执行此操作的信息,请参阅。是否希望
查询
分隔符
紧跟在
路径的最后一个
/
之后?请尝试URL编码您的参数。您的URL中可能有空格或其他非URL字符,因为您直接在其中替换电子邮件地址和客户名称。请参阅,了解如何更优雅地执行此操作。