iOS - REST 客户端工作正常,而 NSURLRequest 返回 NULL

标签 ios json rest httprequest

我正在尝试通过 GET HTTP 请求从云端下载文件,在我的 REST 客户端(Chrome 的 Postman)中我得到了预期的结果,但是当我在 iOS 中传递请求时,我得到了 NULL回复。可能是什么问题?

在我的 REST 客户端中,我将 URL 作为 http://myserver.com/api/download.json?filepath=/&fileid=document:1pLNAbof_dbXGn43GtMNafABMAr_peTToh6wEkXlab7U&filename=My Info.doc 传递给标题授权 key 的字段,它工作得很好。 在 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];

关于iOS - REST 客户端工作正常,而 NSURLRequest 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16421474/

相关文章:

ios - 如何在第一次构建期间使用变量设置标签的初始值?

ios - 如何获取 AVCaptureVideoPreviewLayer 的 UIImage 而不是 AVCapturePhotoOutput 捕获

c# - 获取twitter公开时间线,json+C#,无第3方库

c# - Azure 通知中心格式标记负载 REST API

ios - 在 iOS 中播放通过网络连接逐渐流式传输的 WAV 文件

iphone - 核心数据、iCloud 和 App 被锁定的系统文件暂停

Json Schema - 如何使任意两个或多个属性成为必需

ios - JSON加载ProgressView

java - Jersey 1.17 下载大文件

java - 休息模板 HttpClientErrorException : 400 null on Post API