【问题标题】:Objective-C and ASIHTTPRequest - response string problemsObjective-C 和 ASIHTTPRequest - 响应字符串问题
【发布时间】:2009-06-16 07:57:21
【问题描述】:

我正在使用 ASIHTTPRequest 包将一些数据从 iPhone 发送到我的服务器,然后当保存在服务器上时,我收到一个包含我想在 web 视图中加载的 url 的响应(一个字符串)。理论上这应该很简单,但实际上我根本无法完成这项工作。我猜字符串的编码似乎有一些问题。如果我 NSLog 退出响应,它似乎完全没问题,但它只是拒绝在 webview 中加载。

这是我的要求(一直在玩压缩和编码):

NSURL *url = [NSURL URLWithString:@"xxx"];
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
[request setFile:imageData forKey:@"photo"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[request setAllowCompressedResponse:NO];
[request setDefaultResponseEncoding:NSUTF8StringEncoding];//NSISOLatin1StringEncoding   
[request start];

这是我的回复:

- (void)requestDone:(ASIHTTPRequest *)request{
    NSString *response = [request.responseString];
    NSLog(@"web content: %@", response);
    [webView loadSite:response];
}

NSLog 看起来不错,但网站无法加载。尝试发送 NSString 变量,例如 NSString *temp = @"http://www.google.se";到 loadSite 函数并且工作正常,所以问题不在于加载本身。

非常感谢 obj-c 丛林中的任何指针或帮助:)

/f

【问题讨论】:

    标签: iphone objective-c nsstring


    【解决方案1】:

    尝试执行以下操作:

    NSString *response = [[request responseString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    

    它将修剪所有空格和换行符。

    【讨论】:

    • 太棒了!多谢!比我最终得到的子字符串解决方案要好得多!
    【解决方案2】:

    结果是响应自动以 \n (新换行符)结束。这在记录变量时没有出现,在将其写入文本字段时也没有出现,但在将其转换为 urlobject 并记录我找到它时。调试再次得到回报;)

    【讨论】:

      【解决方案3】:

      woups,我的响应者当然是:

      - (void)requestDone:(ASIHTTPRequest *)request{
          NSString *response = [request responseString];
          NSLog(@"web content: %@", response);
          [webView loadSite:response];
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-21
        • 1970-01-01
        • 2011-05-22
        相关资源
        最近更新 更多