Хорошо, у меня проблемы с поиском ответа на этот вопрос, который заключается не только в использовании JSON или ASIHTTPRequest. Но мой вопрос немного более конкретен, я думаю. Я программирую только как хобби, поэтому я не эксперт. С учетом сказанного моё абстрактное понимание этого может быть совершенно неосновательным, поэтому вопрос может не отвечать.
По сути, я хотел бы отправить HTTP-запрос к сценарию pHp на веб-сервере, чтобы веб-сервер возвращал значение, скажем, простое целочисленное значение или значение bool (представьте себе сценарий входа, который возвращает да нет). На данный момент меня не беспокоит безопасность, так как я пытаюсь облегчить себе понимание этого.
Из того, что я понял, я бы использовал что-то с эффектом
// Create the request.
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com/"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
// create the connection with the request
// and start loading the data
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
// Create the NSMutableData to hold the received data.
// receivedData is an instance variable declared elsewhere.
receivedData = [[NSMutableData data] retain];
} else {
// Inform the user that the connection failed.
}
Это из документации Apple, и я, как правило, понимаю это. Допустим, он отправляет информацию через URL в файл pHp, который затем:
//pHp file gets information
//pHp file uses that information to check against a mySQL database
//pHp now has the variable $result with a value of 1 in it
Кроме того, предположим, что я могу сделать все это хорошо. У меня возникает вопрос: как вернуть значение из pHp обратно в переменную iOS «NSMutableData»? Я повторяю это? Например:
echo "$result";
И что тогда информация помещается в NSMutableData (переменная $ result)? Я знаю, что если бы я делал это строго через pHp / HTML и т. Д., Я мог бы использовать что-то вроде переменной сеанса, чтобы другие страницы могли получить доступ к переменной.
Или есть какая-то другая функция pHp, которая возвращает данные в NSMutabalData, о которых я не знаю? По сути, это связь между двумя, с которыми у меня возникают проблемы, - возвращением данных из сценария pHp - я не совсем понимаю, почему NSMutableData «получает».
Я старался быть как можно более подробным, извините за длинный вопрос. Пожалуйста, просто предположите, что это все, что я пытаюсь сделать, вернуть значение. Безопасность не важна (я пытаюсь сделать это на самом простом уровне, чтобы понять это, а затем опираться на нее). Я стараюсь избегать каких-либо расплывчатых ответов, таких как «написать веб-сервис» или «использовать _ », и я уверен, что есть много лучших способов сделать это, но я » я не тороплю программу - я просто пытаюсь изучить это для лучшего понимания NSURLConnection, pHp, NSMUtableData и того, как все винтики сочетаются друг с другом. Если то, что я спрашиваю, технически невозможно и не имеет смысла, я тоже ценю этот ответ. Я попытался найти и не нашел удовлетворительного ответа на этот кусочек головоломки.
Заранее спасибо.
EDIT:
Я пробовал
...
NSMutableData *receivedData = [[NSMutableData alloc] init];
receivedData = [[NSMutableData data] retain];
NSString *receivedDataString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
label.text = receivedDataString;
...
, который вызывает файл pHp на сервере, который в основном:
<?pHp
$result = "TRUE";
var_dump($result);
?>
Что не работает. Я думаю, что моя проблема на стороне pHp, есть ли какая-то специальная команда, которая возвращает значение объекту NSMutableData? (Просто дополнительная информация, чтобы уточнить мой вопрос).
РЕДАКТИРОВАТЬ II:
Кажется, я не могу ответить напрямую, возможно потому, что раньше я когда-либо пользовался сайтом только анонимно, и у меня есть совершенно новый аккаунт :) Спасибо за ваш ответ, Чарльз, я пытался использовать echo и var_dump, ни кажется, отправляет данные обратно (мой объект NSMutableData при преобразовании в строку NSString кажется пустым - если моя цель C не так, но я проанализировал ее почти до минимума, поэтому я не верю, что это так) .