使用 initWithContentsOfUrl 时如何设置内容类型
Posted
技术标签:
【中文标题】使用 initWithContentsOfUrl 时如何设置内容类型【英文标题】:How to set content-type when using initWithContentsOfUrl 【发布时间】:2010-11-22 08:51:15 【问题描述】:基本上我想设置
Content-Type: application/json;
为了调用 dot net web 服务并让它返回 json 到 iphone 应用程序。
目前有
NSString * jsonres = [[NSString alloc] initWithContentsOfURL:url];我需要什么来发出阻塞请求?
【问题讨论】:
【参考方案1】:您需要使用 NSURLMutableRequest,在这里您可以为内容类型和排序添加标头,这是参考,http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableURLRequest_Class/Reference/Reference.html#//apple_ref/occ/cl/NSMutableURLRequest,一旦您设置了您的请求,您就可以使用此方法添加值 - (void)addValue :(NSString *)HTTPHeaderField 的值:(NSString *) 类似的字段
[request setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
【讨论】:
是的,我认为可以做到。感谢您的快速回复! 虽然它不是阻塞式请求,而是使用委托和回调 - 这将涉及一些重新架构! 对于块状风格你只需要做一个同步调用(忘了提这个抱歉)你可以使用名为 + (NSData *)sendSynchronousRequest:(NSURLRequest *)request returnedResponse:(NSURLResponse **) 的 NSURLConnections 方法响应错误:(NSError **)错误,这是一个链接developer.apple.com/iphone/library/documentation/Cocoa/…: 谢谢。我自己想通了,然后回到这里更换我的 cmets :-) 你 5 小时前到达那里! 请不要在主线程中使用 sendSynchronousRequest。这会导致应用表现不佳。以上是关于使用 initWithContentsOfUrl 时如何设置内容类型的主要内容,如果未能解决你的问题,请参考以下文章
AVAudioPlayer initWithContentsOfURL 为 AAC/M4A 文件返回 nil
Objective-C [[NSXMLDocument alloc] initWithContentsOfURL:url options:0 error:&error];帮助
NSManagedObjectModel initWithContentsOfURL 返回 nil 即使 modelURL 是有效的
推送视图控制器时应用程序崩溃,[NSConcreteData initWithContentsOfURL:options:error:]: nil URL argument'