iphone – ASIHTTPRequest仅在我对字符串进行硬编码时才有效

我有一个问题,真的让我挠头.似乎没有合理的理由说明为什么会这样.如果我将字符串硬编码到NSURL中就可以了.但是,如果我传递一个NSString而不是它.我已经确认NSString与NSLog的硬编码字符串完全相同.

有效的代码.服务器返回200响应代码.

        //NSString * urlStr = [NSString stringWithFormat:@"http://www.server.com/%@",monograph.uri];
    NSURL *url = [NSURL URLWithString:@"http://www.server.com/api/monograph/com/3894.json"];

    ASIHTTPRequest *request; 
    request = [ASIHTTPRequest requestWithURL:url];
    [request setUsername:appDelegate.key];
    [request setPassword:appDelegate.secret];
    [request setDelegate:self];
    [request startAsynchronous];

代码失败.服务器为此返回204响应代码:

NSString * urlStr = [NSString stringWithFormat:@"http://www.server.com/%@",monograph.uri];
    NSURL *url = [NSURL URLWithString:urlStr];

    ASIHTTPRequest *request; 
    request = [ASIHTTPRequest requestWithURL:url];
    [request setUsername:appDelegate.key];
    [request setPassword:appDelegate.secret];
    [request setDelegate:self];
    [request startAsynchronous];

当我NSLog urlStr它包含:

http://www.server.com/api/monograph/com/3894.json

我错过了什么?必须要有一些东西来解释它 – .-

问候,

编辑

检查两个字符串的长度,它们都是相同的长度,所以似乎不是白色空格或隐藏在那里的任何东西.

最佳答案 您是否检查过从字符串变量获取的NSURL对象是否为零?这可以帮助您回答问题的位置.

此外,您可以尝试转义字符串变量,只是通过stringWithFormat调用来填充有趣的东西.

点赞