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 请求的 GET 与 POST 方式的区别

在线HTTP POST/GET模拟请求api接口http请求测试工具https://post.jsonin.com/

HTTP 请求:GET vs. POST

(gin框架拓展)两种 HTTP 请求方法:GET 和 POST

HTTP两种请求方法:GET和POST基础了解

浅谈WebService SOAPRestfulHTTP(post/get)请求