我正在尝试通过GET HTTP请求从云下载文件,并且在我的REST客户端(Chrome邮递员)中,按预期方式获得了结果,但是当我在iOS中传递请求时,我得到了NULL响应。可能是什么问题呢?

在我的REST客户端中,我将URL作为http://myserver.com/api/download.json?filepath=/&fileid=document:1pLNAbof_dbXGn43GtMNafABMAr_peTToh6wEkXlab7U&filename=My Info.doc传递,带有用于授权密钥的标头字段,它可以很好地工作。
在iOS中,如果我做这样的事情:

[request setURL:[NSURL URLWithString:URLString]]; // I tried even to hardcode the
                                                 // URLString to be one of the
                                                // working URLs from the Postman
                                               // Client, doesn't work as well.
[request setHTTPMethod:@"GET"];
NSData* response = [NSURLConnection sendSynchronousRequest:request
                                          returningResponse:&urlResponseList
                                          error:&requestErrorList];


响应为空,我得到一个状态码500。
有人知道如何进行这项工作吗?谢谢。

最佳答案

看起来您的URL中有一个空格,在将字符串发送到NSURL之前,您需要对其进行转义。

如果这不起作用,了解服务器的全部错误也将很有帮助。 requestErrorList包含什么?

但是,如果唯一的问题是非转义字符,则应该可以执行以下操作。

NSString *encodedString = [URLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[request setURL:[NSURL URLWithString:encodedString];

08-28 09:50