ios - 如何从 iPhone 应用程序向 Web 服务器写入数据?

标签 ios iphone webserver webservice-client

我期待通过我的 iPhone 应用程序在 Web 服务器上发布一些数据和信息。我无法从 iPhone sdk 将数据发布到 Web 服务器。

最佳答案

这取决于您希望以何种方式将数据发送到网络服务器。如果您只想使用 HTTP POST 方法,有(至少)两个选项。您可以使用同步或异步 NSURLRequest。如果你只想发布数据而不需要等待服务器的响应,我强烈推荐异步的,因为它不会阻塞用户界面。 IE。它“在后台”运行,用户可以继续使用(即与之交互)您的应用程序。异步请求使用委托(delegate)来告诉应用程序请求已发送、已取消、已完成等。如果需要,您还可以通过委托(delegate)方法获取响应。

这是一个异步 HTTP POST 请求的示例:

// define your form fields here:
NSString *content = @"field1=42&field2=Hello";

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.example.com/form.php"]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:[content dataUsingEncoding:NSISOLatin1StringEncoding]];

// generates an autoreleased NSURLConnection
[NSURLConnection connectionWithRequest:request delegate:self];

请引用NSURLConnection Class Reference有关委托(delegate)方法的详细信息。

也可以在生成请求后发送同步请求:

[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

如果你传递一个 NSURLResponse ** 作为返回响应,你会在指针指向的对象中找到服务器的响应。请记住,在处理同步请求时,UI 会阻塞。

关于ios - 如何从 iPhone 应用程序向 Web 服务器写入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4334055/

相关文章:

ios - 为什么 iPhone 6 Plus 键盘在我的应用程序上看起来不同?

iphone - 我想弄清楚 iOS 键盘的时间

python 未执行,代码在页面中显示为文字

ios - Swift:使用 NSLock 或并发队列的安全线程

ios - 如何使用 Xcode 访问 NSArray 中的特定列

ios - Firebase 数据库权限被拒绝使用 swift 4.2 时遇到的错误

linux - 配置虚拟主机

ios - 在 Swift Playgrounds for iPad 中显示 TableView

iphone - 如何建立 SSL 连接 (iphone)

java - 聊天java网络服务器,http部分响应