【问题标题】:Send iPhone HTTP request to Apache PHP webserver向 Apache PHP 网络服务器发送 iPhone HTTP 请求
【发布时间】:2010-11-13 23:35:38
【问题描述】:

我是一名具有游戏和 3D 图形背景的程序员,目前我想提高我的网络和 Web 开发技能。

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

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

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

附:如果您不知道发送请求的 Cocoa 代码,那没关系,我相信我可以弄清楚,但我想至少知道如何让 Linux 服务器保存 HTTP 请求,最好是 PHP但是另一种合适的语言也可以。 安全地进行此操作的客场加分。

另外:我在这方面完全是菜鸟,需要源代码,干杯:D

【问题讨论】:

    标签: php iphone linux http networking


    【解决方案1】:

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

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

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

    【讨论】:

    • 很好看,看起来不错+1
    【解决方案2】:

    好的,没有人给出答案,所以我去发现了一个项目,该项目详细说明了如何使用 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";
    }
    ?>
    

    网络客户端 (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]];
    

    我喜欢这个,因为它是一个最小的解决方案,您可以轻松地在它的基础上进行构建,希望这可以帮助其他人遇到这个问题:)

    【讨论】:

    • ASIHTTPRequest 很棒(尽管很快就会被弃用),但有时这就是你所需要的。谢谢,布洛克!
    【解决方案3】:

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

    目前不打算深入研究,但我相信您会使用 NSStream 和 NSURLRequest 来构建更复杂的查询,例如使用 POST。

    【讨论】:

    • “现在不打算深入查找”->那你为什么在这里发帖?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多