我正在尝试通过GET HTTP请求从云端下载文件,在我的REST客户端(Postman for 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。 有谁知道如何使这项工作?感谢。
答案 0 :(得分:1)
当Web服务无法处理您的请求时,会出现HTTP状态代码500。发生内部错误。
尝试在您的请求中添加更多详细信息。
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
答案 1 :(得分:1)
看起来你的网址中有空格,你需要在将字符串发送到NSURL之前将其转义。
如果这不起作用,知道服务器的完整错误也是有帮助的。 requestErrorList包含什么?
但如果唯一的问题是非转义字符,这样的事情应该有用。
NSString *encodedString = [URLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[request setURL:[NSURL URLWithString:encodedString];