【问题标题】:AFNetworking POST request fails while sending html string as parameter发送 html 字符串作为参数时,AFNetworking POST 请求失败
【发布时间】:2016-06-07 11:25:01
【问题描述】:

我正在发送类似 html 的字符串

summary = "<p align=\"right\" style=\" \"><u><b><font face=\".SF UI Text\"  style=\" font-size:16px; color:rgb(0,0,0); \" >Paras</font></b></u></p>"

作为 POST 参数,但每次请求都失败。 并且这个请求字典被 AFNetworking 转换成类似 json 字符串的

"summary" : "<p align=\"right\" style=\" \"><u><b><font face=\".SF UI Text\"  style=\" font-size:16px; color:rgb(0,0,0); \" >Paras<\/font><\/b><\/u><\/p>"

我认为可能存在问题,但我不确定。 我不知道为什么只有当我将参数作为 html 字符串发送时,请求才会失败。

[requestDict setObject:htmlString forKey:@"summary"];

如上设置请求字典

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
            [manager.requestSerializer setTimeoutInterval:60.0];
            manager.requestSerializer = [AFJSONRequestSerializer serializer];

            if ([[NSUserDefaults standardUserDefaults] objectForKey:@"accessToken"] != nil)
            {
    //                     NSLog(@"%@", [[NSUserDefaults standardUserDefaults] objectForKey:@"accessToken"]);
                [manager.requestSerializer setValue:requestAuthorization forHTTPHeaderField:@"Authorization"];
            }

    //            NSLog(@"%@", requestAuthorization);
            [manager.requestSerializer setValue:@"guest" forHTTPHeaderField:@"user_type"];
            [manager.requestSerializer setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
            [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
            [manager.requestSerializer setValue:[[[UIDevice currentDevice] identifierForVendor] UUIDString] forHTTPHeaderField:@"device_id"];
            [manager.requestSerializer setValue:[[UIDevice currentDevice] systemVersion] forHTTPHeaderField:@"device_os"];
            [manager.requestSerializer setValue:[[UIDevice currentDevice] systemName] forHTTPHeaderField:@"device_name"];
    [manager POST:url parameters:parameters success:success failure:failure];

任何帮助将不胜感激。 谢谢

【问题讨论】:

  • requestDict 未在您的代码中使用。只有parameters。您能否展示您转换的真实代码以及requestDictparameters 是如何关联的?由于您已经将 requestSerializer 设置为 AFJSONRequestSerializer,因此 parameters 必须是 NSArrayNSDictionary
  • 我已经使用过了,我添加的代码只是为了一个例子,我将 requestDict 传递给另一个 Web 服务调用方法到“parameters”对象
  • 这样:parameters = @{@"summary":@"&lt;p align=\"right\" style=\" \"&gt;&lt;u&gt;&lt;b&gt;&lt;font face=\".SF UI Text\" style=\" font-size:16px; color:rgb(0,0,0); \" &gt;Paras&lt;/font&gt;&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;"},它不起作用?

标签: ios objective-c http-post afnetworking


【解决方案1】:
      NSString * htmlstring =[NSString stringWithFormat:@"<p align=\"right\" style=\" \"><u><b><font face=\".SF UI Text\"  style=\" font-size:16px; color:rgb(0,0,0); \" >Paras</font></b></u></p>"];

 NSString *strRequetURL = [NSString stringWithFormat:@"url"];
        [[AFHTTPRequestSerializer serializer] setTimeoutInterval:30];
        [[AFHTTPRequestOperationManager manager] POST:strRequetURL parameters:dictParameter success:^(AFHTTPRequestOperation *operation, id responseObject) {

            completion(responseObject);
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
              NSLog(@"error %@",error.description);
           // DisplayAlert(@"Network Connection Timed Out");
        }];

请使用此代码,让我知道你得到了什么

【讨论】:

  • 实际上,当我回来编辑时,我正在使用 html 字符串来保存格式,并且它已经分配给 NSString 对象,请参考提到的示例字符串。
  • 这是我不想做的事情,因为转换后我会丢失所有需要进行格式化的html标签
  • 不使用 html 字符串你会得到响应我知道吗
  • 基本上我想要的是保存完整的 html 字符串并将其发送到 API,以便它可以与我的应用程序的所有平台同步。
  • 你可以通过这个字符串 NSString * htmlstring =[NSString stringWithFormat:@"

    帕拉斯

    "];
猜你喜欢
  • 2016-09-03
  • 1970-01-01
  • 2016-03-28
  • 2011-06-30
  • 1970-01-01
  • 2020-04-06
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多