iOS 应用 http post/get 请求
Posted
技术标签:
【中文标题】iOS 应用 http post/get 请求【英文标题】:iOS app http post/get request 【发布时间】:2013-04-24 18:10:37 【问题描述】:我需要一些教程,如何使用来自我的 ios 应用程序的 HTTP POST(或 GET)请求。我想将一个字符串发送到我的服务器,然后将其写入数据库。我找到了这段代码:
NSString *post = @"key1=val1";
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:@"http://www.nowhere.com/sendFormHere.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
我将它添加到 UIAction 按钮,但它不会向我的服务器发送任何内容。在我的服务器上,我有一个 PHP 脚本,它从 post 中获取“key1”,然后将其写入 db。
<?
$postr = $_POST["key1"];
$con0 = mysql_connect("server","db","pass");
mysql_select_db("table", $con0);
mysql_set_charset('utf8',$con0);
mysql_query("INSERT INTO tok (token) VALUES ('$postr')");
mysql_close();
?>
谁能告诉我我做错了什么?
【问题讨论】:
不,我当然想从iOS APP发送...只需要知道哪里出错了 然后写下你的意思。 Xcode 和你的 iOS 应用程序是两个不同的东西。目前的问题与 Xcode 完全无关。 为什么?我需要 xcode 的代码......但是好的..那么你现在能帮我吗? :) 不,您真的认为您会根据 IDE 编写其他内容吗?当然不是。看,我制作 iOS 应用程序已经 3 年了,前两年半我一直在使用 Linux。那里没有 Xcode,只有一个文本编辑器和“make”。我仍然很少使用 Xcode。 顺便说一句,allowLossyCompression:YES
看起来很讨厌。此外,您的服务器端脚本容易受到 SQL 注入攻击。
【参考方案1】:
查看 AFnetworking 并通过他们的 api 工作。使用 api 发送 post 请求非常快,并且是大多数应用程序用于网络连接的方式。
也请不要被讽刺的 cmets 气馁。您应该将 iOS 项目标记为 iOS 而不是 xcode(除非您确实需要实际程序 xcode 的帮助)。但我不认为骚扰每个进来并犯此错误的人是有成效的。一种更委婉的方式是个人信息,而不是公开反驳
https://github.com/AFNetworking/AFNetworking
【讨论】:
【参考方案2】:AFNetworking 是一个非常强大的库,可以帮助您减少创建 HTTP 请求的工作量,您可以在其 github 页面上找到有关如何使用该库的几个示例。
您可能会发现此答案对您的需求很有用:AFNetworking Post Request
【讨论】:
以上是关于iOS 应用 http post/get 请求的主要内容,如果未能解决你的问题,请参考以下文章
在线HTTP POST/GET模拟请求api接口http请求测试工具https://post.jsonin.com/