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