我正在尝试通过 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/