Как отправить данные с iphone на сервер, используя URL - PullRequest
2 голосов
/ 22 апреля 2011

Я хотел бы знать, как я могу отправить данные из моего приложения для iphone в таблицу на сервере MySQL, используя URL-адрес.

http://localhost/location.php?id=&latitude=@&longitude=@

, где "@" - переменные широты и долготы из xcode.

Ответы [ 4 ]

0 голосов
/ 22 апреля 2011

Простой Попробуйте это

NSString *urlString = [NSString stringWithFormat:@"http://localhost/location.php?id=&latitude=%@&longitude=%@",yourLat,yourLong];
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
NSData *returnData = [NSData dataWithContentsOfURL:url];
// returnData will be the response you get when you pass the URL. If you like to 
// get some acknowledgement pass a xml format with some parameters to check 
// whether the URL you sent is valid one.
0 голосов
/ 22 апреля 2011

Наиболее распространенным способом взаимодействия с сервером таким способом являются метод NSString stringWithContentsOfURL:encoding:error: (и другие связанные методы в NSString) и класс NSURLConnection , который способен выполнять асинхронные фоновые запросы.

Оба вышеуказанных ссылочных документа класса содержат образцы кода (см. Раздел «Связанный пример кода» вверху каждого).

Кроме того, доступны сторонние решения, такие как ASIHTTPRequest class.

Как только данные "попадают" на сервер, вы затем извлекаете данные из суперглобального $ _ GET перед сохранением их в таблице базы данных. Существует множество подходов к этому (с использованием уровня абстракции, таких как PDO и т. Д.), Поэтому это действительно зависит от ваших личных предпочтений.

0 голосов
/ 22 апреля 2011

Вы можете использовать следующий код Сначала вы можете импортировать пакет asihttprequest и все необходимые фреймворки. После этого

#import "ASIHTTPRequest.h"
#import "ASINetworkQueue.h"

В вашем файле viewcontroller.h

ASINetworkQueue  *networkQueue;

В вашем файле viewController.m: - в viewdidLoad: -

networkQueue=[[ASINetworkQueue queue]retain];

Введите следующий код, куда вы хотите отправить запрос: -

NSString *str = [NSString stringWithFormat:@"http://localhost/location.php?id=&latitude=%@&longitude=%@",latitude,longitude];
        NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
        ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
        [request setRequestMethod:@"GET"];
        [request setDelegate:self];
        [request setDidFinishSelector: @selector(*writemethodforsuccessfulrequest*)];
        [request setDidFailSelector: @selector(*writemethodforrequestfailed*)];
        [networkQueue addOperation: request];
        [networkQueue go];

В Диллок: -

[networkQueue cancelAllOperations];
[networkQueue release]; 
0 голосов
/ 22 апреля 2011

привет друг для этого вам нужно сначала установить соединение с помощью ASIHttp Connection Delegate

...