【问题标题】:Using base64 string with NSURLConnection使用带有 NSURLConnection 的 base64 字符串
【发布时间】:2015-12-18 19:26:30
【问题描述】:

我正在使用 NSURLConnect 调用,当我的查询字符串中有空格时,我得到了不受支持的 URL。为了解决这个问题,我将字符串转换为 base64,但仍然出现错误。如何通过 NSUrlConnect 成功发送 base64 字符串?如果这不可能,我如何安全地发送一个带有空格的字符串?

NSData *convertData = [queryWS dataUsingEncoding: NSUnicodeStringEncoding];
queryWS = [convertData base64EncodedStringWithOptions:kNilOptions];

NSURLRequest *urlRequest =
[NSURLRequest requestWithURL:[NSURL URLWithString:queryWS]];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest
                                     returningResponse:&response
                                                 error:&error];
if (!error) {
  responseDictionary =
  [NSJSONSerialization JSONObjectWithData:data
                                  options:0
                                    error:&parseError];

【问题讨论】:

    标签: ios base64 nsurlconnection


    【解决方案1】:

    您不想将 URL 字符串转换为 base64 编码。您想要的是正确转义 URL 中的任何特殊字符。如果您只需要支持 iOS 9 或更高版本,请参阅NSString stringByAddingPercentEscapesUsingEncoding: 方法或NSString stringByAddingPercentEncodingWithAllowedCharacters:

    【讨论】:

      【解决方案2】:
      NSString *queryString = @"SOME_QUERY_STRING";
      NSString *encodedQueryString = [queryString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
      

      【讨论】:

        猜你喜欢
        • 2012-04-26
        • 2012-05-21
        • 2017-01-17
        • 1970-01-01
        • 2017-06-15
        • 1970-01-01
        • 1970-01-01
        • 2014-11-05
        • 1970-01-01
        相关资源
        最近更新 更多