发送iPhone HTTP请求到Apache PHPnetworking服务器

我是一个游戏和3Dgraphics背景的程序员,现在我想刷新我的networking和Web开发技能。

我有一个任务,我想完成这样做。 我的想法是,我想能够发送一个HTTP请求或类似的东西,我的networking服务器,运行基于LAMP的设置。 我想知道我怎么可以发送一个HTTP请求,包含从我的iPhone使用Cocoa Touch框架的一些信息到我的networking服务器。

我希望Web服务器(使用PHP)能够将发送的信息logging到纯文本文件中,以后我可以使用它来生成图表。 对于我的例子,我们可以发送当前的date。

我认为人们必须经常这样做,我真的想知道如何做到这一点。 谢谢你的帮助。

PS如果你不知道Cocoa代码来发送请求,没关系,我确定我可以弄清楚,但我想至less知道如何让Linux服务器保存HTTP请求,最好是PHP,但另一种适当的语言是好的。 奖金标志为了安全地做到这一点。

另外:我是一个总noob在这个,需要源代码,欢呼声:D

如果您需要从iPhone或Mac客户端向Web服务器发出HTTP请求,您实在无法像ASIHTTPRequest一样通过库。 文档非常好,涵盖了所有重要的主题,如:

  • 异步请求和同步请求
  • 发送数据到服务器
  • 跟踪上传/下载进度
  • 处理认证
  • 使用钥匙串来存储凭证
  • 用gzip压缩请求体

你应该检查一下 – 这会让你的生活更轻松。

好吧,没有人给出答案,所以我走了,发现一个项目,详细说明如何使用Mac本地应用程序为客户端或PHP网页客户端做到这一点。 我稍微修改了一些原始的服务器代码,只是让你知道我已经在我自己的站点上测试过了,它可以将文件上传到Web服务器。

PHP服务器(uploader.php)

<?php $target = "upload/"; $target = $target . basename( $_FILES['uploaded']['name'] ); $filename = "\"" . basename( $_FILES['uploaded']['name'] ) . "\""; $ok = 1; if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) { echo "$filename"; echo "was uploaded successfully"; } else { echo "$filename"; echo "upload failed"; } ?> 

Web客户端(index.php)

 <form enctype="multipart/form-data" action="uploader.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> Choose a file to upload: <input name="uploaded" type="file" /><br /> <input type="submit" value="Upload File" /> </form> 

可可客户端

Cocoa客户端的代码很长,可以在这里找到上面的代码。 这里有一个替代方案 ,我认为这是更好的代码,但是我没有用上面的PHP服务器进行测试。 我希望你可以修改它,如果有的话,只要很小的变化。

这是Cocoa发送POST请求到web服务器的一个基本方法:

 NSString* content = [@"item=" stringByAppendingString:@"Something to Post"]; NSURL* url = [NSURL URLWithString:@"http://www.mysite.com/index.php"]; NSMutableURLRequest* urlRequest = [[NSMutableURLRequest alloc] initWithURL:url]; [urlRequest setHTTPMethod:@"POST"]; [urlRequest setHTTPBody:[content dataUsingEncoding:NSASCIIStringEncoding]]; 

我喜欢这个,因为这是一个最小的解决方案,你可以轻松地建立它,希望这可以帮助别人,如果他们碰到这:)

不是一个真正的服务器端的人,但发送HTTP请求可以在几个方面完成。 最简单的方法是使用+ NSString stringWithContentsOfURL:并在URL中使用GET参数。 这将在您指定的URL处打击服务器,并且GET参数可以包含数据。 返回值可以忽略,应该是最小的。

现在不用深入研究它,但是我相信你会使用NSStream和NSURLRequest来构建更复杂的查询,例如使用POST。