Отправить iPhone HTTP-запрос на веб-сервер Apache PHP

Я программист с играми и 3D-графикой, и на данный момент я хотел бы освежить свои навыки создания сетей и веб-разработки.

У меня есть задача, которую я хотел бы сделать для этого. Моя идея заключается в том, что я хотел бы иметь возможность отправлять HTTP-запрос или что-то похожее на мой веб-сервер, который запускает настройку на основе LAMP. Я хотел бы знать, как я могу отправить HTTP-запрос, содержащий некоторую информацию с моего iPhone, используя инфраструктуру Cocoa Touch, на мой веб-сервер.

Я хотел бы, чтобы веб-сервер (используя PHP) мог записывать отправленную информацию в текстовый файл, который я могу использовать позже для создания графиков. Для моего примера мы могли бы просто отправить текущую дату.

Я думаю, что люди должны делать это очень часто, и я действительно хочу знать, как это сделать. Спасибо за вашу помощь.

PS Если вы не знаете код Cocoa, чтобы отправить запрос, все в порядке, я уверен, что смогу это понять, но я хотел бы хотя бы знать, как заставить сервер Linux сохранять HTTP-запрос, предпочтительно PHP, но другой подходящий язык в порядке. Бонусные баллы за то, чтобы сделать это безопасно .

    Кроме того: я полный noob на этом и требую исходный код, приветствия: D

    Related of "Отправить iPhone HTTP-запрос на веб-сервер Apache PHP"

    Вы действительно не можете пройти мимо библиотеки, такой как ASIHTTPRequest, если вам нужно сделать HTTP-запросы от iPhone или Mac-клиента на веб-сервере. Документация очень хорошая и охватывает все важные темы, такие как:

    • асинхронные и синхронные запросы
    • отправка данных на сервер
    • отслеживание загрузки / загрузки
    • обработка аутентификации
    • использование брелка для хранения учетных данных
    • сжимающие тела запроса с помощью gzip

    Вы должны это проверить – это сделает вашу жизнь намного проще.

    Хорошо, никто не дал ответа, поэтому я ушел и обнаружил проект, в котором подробно описывается, как это сделать, используя собственное приложение Mac для клиента или клиента веб-страницы PHP. Я немного изменил код исходного кода, так что вы знаете, что я тестировал его на своем собственном сайте, и он работает для загрузки файлов на веб-сервер.

    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"; } ?> 

    Веб-клиент (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 на веб-сервер:

     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: и использовать параметры GET в URL. Это попадет на сервер по указанному вами URL-адресу, а параметры GET могут содержать данные. Возвращаемое значение может быть проигнорировано и должно быть минимальным.

    Не собираюсь искать его в глубине прямо сейчас, но я считаю, что вы должны использовать NSStream и NSURLRequest для построения более сложных запросов, используя, например, POST.