URL参数断言失败




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

-(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];
    }];
}

错误:

由于未捕获的异常而终止应用"NSInternalConferenceException",原因:"不是无效参数满足:URLString'

错误告诉您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];
    }];
}

你应该阅读这个stackoverflow问题,因为它涵盖了这类问题。

最新更新