gpt4 book ai didi

php - NSMutableURLRequest : setHTTPMethod 的解释

转载 作者:行者123 更新时间:2023-11-29 07:59:49 24 4
gpt4 key购买 nike

我是 Objective C 编程新手。我目前正在尝试将数据插入 mysql 数据库。我已经阅读了几个关于此的链接,但找不到我正在寻找的确切答案。

这是我正在尝试做的事情:

我有我的应用程序,用户在文本字段中输入名称,一旦按下添加按钮,它就会连接到我的 php 文件,我的 php 文件将完成其余的工作(使用 POST 方法)并添加mysql 数据库的名称。

我看到很多人在他们的代码中使用 NSMutableURLRequest : setHTTPMethod :POST`` (在我的例子中,我的 php 文件就是这样做的,并且我的代码中没有包含NSMutableURLRequest` 并且它工作得很好。)

我的问题是:

  • 当您只需调用 php 代码来为您处理 POST 时,在代码中包含 NSMutableURLRequest 有什么好处吗?
  • NSMutableURLRequest 到底做了什么以及哪种方式更有效?

这里重新表述我的问题:

使用以下 NSMutableRequest 方法连接到 php 文件会更好吗:

NSString *loginString =[NSString stringWithFormat:@"fn_checkLogin2.php?name=%@&pass=%@", self.email.text, self.password.text];

NSURL *url = [NSURL URLWithString:@"http://www.myworkingdomain.com/"];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url ];

[urlRequest setTimeoutInterval:30.0f];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:[loginString dataUsingEncoding:NSUTF8StringEncoding]];

NSOperationQueue *queue= [[NSOperationQueue alloc] init];

[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
if ([data length]>0 && error==nil) {
NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"HTML = %@",html);
}
}
];

或者这样:

NSString *strURL = [NSString stringWithFormat:@"http://www.myworkingdomain.com/fn_checkLogin2.php?name=%@&pass=%@", self.email.text, self.password.text];

// to execute php code
NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];

// to receive the returend value
NSString *strResult = [[[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding]autorelease];

最佳答案

NSMutableURLRequest 创建一个将发送到 URL 的 HTTP 请求。

每个 HTTP 请求都必须有一个“方法”,可以是以下之一:

  • 获取
  • 发布
  • 放置
  • 删除
  • 跟踪
  • 选项
  • 连接
  • 补丁

GET 是默认值,如果您未指定任何内容,则将使用它。几乎所有的 HTTP 请求都是 GET。它旨在当您从服务器获取数据时使用。

POST 几乎是唯一常用的其他方法,它旨在将数据发送到服务器时使用。

使用 POST 的主要原因是禁用缓存。如果您向同一个 URL 发送 GET 请求两次,有时第二个请求根本不会向服务器发送任何内容,它只会响应第一个返回的响应。

这种缓存可以在请求的任何阶段完成,例如大多数网络浏览器都会这样做,一些 ISP 也会这样做。最后一个是最大的问题,因为它只会发生在使用这些 ISP 之一的用户身上。它也可以由服务器完成,例如,我的 PHP 代码通常会将 GET 响应保存到磁盘,并在下次对相同 URL 的请求命中我的 PHP 脚本时返回该文件的内容,从而显着减少服务器负载。我不会对 POST 请求执行此操作。

因此,如果您希望请求确实发送到服务器,则应始终将请求方法设置为 POST。

关于php - NSMutableURLRequest : setHTTPMethod 的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24150820/

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