将iPhone HTTP请求发送到Apache PHP Web服务器

时间:2009-07-25 09:40:22

标签: php iphone linux http networking

我是具有游戏和3D图形背景的程序员,目前我想了解我的网络和网络开发技巧。

我有一项任务,我想完成这项任务。我的想法是,我希望能够发送HTTP请求或类似于我的网络服务器,它运行基于LAMP的设置。我想知道如何使用Cocoa Touch框架将包含一些信息的HTTP请求发送到我的网络服务器。

我希望网络服务器(使用PHP)能够将发送的信息记录到纯文本文件中,以后我可以使用它来制作图表。对于我的例子,我们可以发送当前日期。

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

P.S。如果您不知道Cocoa代码以便发送请求,那没关系我确定我可以解决这个问题,但我想至少知道如何让Linux服务器保存HTTP请求,最好是PHP但另一种合适的语言是好的。奖励标记为安全

另外:我是一个完全的菜鸟,需要源代码,欢呼:D

3 个答案:

答案 0 :(得分:11)

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

  • 异步与同步请求
  • 将数据发送到服务器
  • 跟踪上传/下载进度
  • 处理身份验证
  • 使用钥匙串存储凭据
  • 使用gzip压缩请求正文

你应该check it out - 它会让你的生活更轻松。

答案 1 :(得分:9)

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

PHP Server(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客户端

Cocoa客户端的代码很长,可以找到上面的代码here。这里有一个alternative,我认为这是更好的代码,但我没有使用上面的PHP服务器测试它。我希望你可以用最小的改变修改它,如果有的话。

以下是Cocoa向网络服务器发送文字POST请求的基本方法:

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]];

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

答案 2 :(得分:-1)

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

现在不打算深入查看,但我相信你会使用NSStream和NSURLRequest构建更复杂的查询,例如使用POST。

相关问题