gpt4 book ai didi

cocoa - 使用 NSOutputStream POST 到 url

转载 作者:行者123 更新时间:2023-12-03 16:32:36 25 4
gpt4 key购买 nike

所以我想做的就是向某个网址发送 POST 请求。现在我尝试使用 NSURLRequest/NSURLConnection,但遇到了问题并决定移至较低级别,也是因为我想发送大文件并认为直接处理流可能会更好。但输出流委托(delegate)似乎从未被调用,而且我似乎找不到使用 NSOutputStream 的 initWithURL 的示例。

NSURL *url = [NSURL URLWithString:NSString stringWithFormat: @"http://url"];
self.outputStream = [[NSOutputStream alloc] initWithURL:url append:NO];
[outputStream retain];
[outputStream setDelegate:self];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream open];

在初始化之后,outputStream 似乎为 null,我无法理解,因为我的 url 是有效的 url——我可以从终端 ping 它并从其他源发送数据。我做错了什么吗?或者谁能告诉我如何使用流向 URL 写入 POST 请求?谢谢。

最佳答案

您不能使用 NSOutputStream 向 HTTP 服务器发送 POST 请求。

好的方法是创建一个 NSMutableURLRequest 并为该请求提供 HTTPBodyStream,然后创建一个 NSURLConnection 来发送该请求。

HTTPBodyStream 是请求将从中读取正文的 NSInputStream。您可以使用 NSData 对象或文件的内容来初始化它。

如果您想提供自定义内容(例如,您想将文件作为 multipart/form-data 请求的一部分上传),您可能需要子类化 NSInputStream。在这种情况下,我建议您看看How to implement CoreFoundation toll-free bridged NSInputStream subclass ,其中解释了如何解决通过 NSURLConnection 使用自定义输入流时出现的问题。或者您可以使用ASIHTTPRequest它提供开箱即用的多部分 HTTP 请求。

关于cocoa - 使用 NSOutputStream POST 到 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11209249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com