سؤال

وI تنفيذ التعليمات البرمجية التالية:

NSURL *url = [ NSURL URLWithString:[ NSString stringWithFormat: @"http://www.google.com/search?q=%@", query ] ];
NSURLRequest *request = [ NSURLRequest requestWithURL: url ];

وأريد أن استخراج الجسم من ما أتلقى مرة أخرى من عنوان الموقع أعلاه. حاولت:

NSData *data = [request HTTPBody];

و <م> بيانات متغير لا يرجع أي بيانات؟ أنا ذاهب حول استخراج البيانات من الطلب على الطريق الصحيح؟

وشكرا!

هل كانت مفيدة؟

المحلول

إذا كنت مجرد محاولة للحصول على صفحة ويب، يمكنك استخدام هذا.

NSURL *url = [ NSURL URLWithString: [ NSString stringWithFormat: @"http://www.google.com"] ]; 
NSString *test = [NSString stringWithContentsOfURL:url];

إذا كنت تريد حقا لتحويل البيانات من NSData يمكنك استخدام هذا:

NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

نصائح أخرى

وNSURLRequest يعرف فقط طلب - أنها لا تفعل أي شيء في حد ذاته. لجعل الواقع الطلب، تحتاج إلى إعطاء الطلب إلى <لأ href = "http://developer.apple.com/DOCUMENTATION/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html#//apple_ref/doc/uid / 20001836-BAJEAIEE "يختلط =" نوفولو noreferrer "> NSURLConnection .

وبالإضافة إلى ذلك، كما هو مبين في في وثائق ، وHTTPBody هي البيانات التي يتم إرسالها مع طلب، وليس الجسم استجابة.

وهناك مقال في www.eigo.co.uk الذي يظهر بالضبط كيفية القيام على طلب والحصول على استجابة في متغير سلسلة ولكن جزءا من التعليمات البرمجية ما تحتاجه هو ...

NSString * strResult = [[NSString alloc] initWithData:oResponseData encoding:NSUTF8StringEncoding];

وراجع مقالة هنا HTTP: //www.eigo. co.uk/iPhone-Submitting-HTTP-Requests.aspx

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top