2009-07-25 156 views
9

我是一名游戏和3D图形背景的程序员,目前我想刷新我的网络和Web开发技能。发送iPhone HTTP请求到Apache PHP网络服务器

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

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

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

P.S.如果您不知道Cocoa代码以发送请求,那没关系,我确定我可以弄清楚,但我想至少知道如何让Linux服务器保存HTTP请求,最好是PHP但另一种适当的语言是好的。附加奖励标记安全

另外:我在这个总的小白和需要的源代码,欢呼声:d

回答

11

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

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

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

+0

非常感谢,看起来不错+1 – 2009-07-27 10:00:38

-1

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

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

+0

“现在不打算深入研究” - >那你为什么在这里发帖? – twerdster 2010-10-16 13:13:07

9

好吧没有人给出答案,于是我离开,发现了一个项目,详细介绍了如何使用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> 

可可客户

的可可客户端的代码是相当长的并且符合abo的代码ve可以找到here。这里有一个alternative,我认为这是更好的代码,但是我没有使用上面的PHP服务器对它进行测试。我希望你可以修改它,如果有的话,只需要很少的修改。

这里是可可一个基本的方式来发送文本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]]; 

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

+0

ASIHTTPRequest很棒(虽然很快就会被弃用),但有时候这只是你需要的。谢谢,布鲁克! – Keller 2012-01-10 21:35:17