Я только начинаю в XCode и хотел попробовать создать простое приложение, в котором вы нажимаете кнопку, и оно создает запрос на публикацию html и возвращает html в виде строки, с которой я не могу потом возиться. Я понимаю, что лучше использовать сервер, используя путь, мыло или XML, но для меня это первый шаг.
У меня проблема в том, что я не могу понять, почему я получаю нулевые данные, возвращенные после моего запроса. Я думаю, что это может быть связано со мной, пытаясь преобразовать переменную NSData в строку?
ниже - код для нажатия кнопки, а ниже - NSLog Подробности того, что выходит.
Может ли кто-нибудь подсказать, что я делаю с этим не так?
Ура,
John
- (IBAction) buttonTouchedSignIn {
NSString *userName = @"mymadeupuser";
NSLog (@"NSString userName = %@\n\n", userName);
NSString *password = @"1234";
NSLog (@"NSString password = %@\n\n", password);
NSString *url = @"http%3A%2F%2Fmyotherwebsite.com%3A80%2Fsomthing%2Fweb%2Faction%2Flogin.do%3FtargetURL%3Dhttp%3A%2F%2Fsomwherelse.com%2Fsite3%2Fweb3%2Faction%2FmyAccountMenu.do%3Fdscnt%3D0%26vid%3DBSU";
NSLog (@"NSString url = %@\n\n", url);
// Create the username and password string.
// username and password are the username and password to login with
NSString *postString = [[NSString alloc] initWithFormat:@"bor_id=%@&bor_verification=%@&url=%@",userName, password, url];
NSLog (@"NSString postString = %@\n\n", postString);
// Create the URL request
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:@"https://mywebsite.com/somthing/"]];
NSLog (@"NSString NSMutableURLRequest = %@\n\n", request);
NSData *requestData = [postString dataUsingEncoding:NSASCIIStringEncoding];
[request setHTTPBody: requestData]; // apply the post data to be sent
NSLog (@"NSData requestData = %@\n\n", requestData);
// Call the URL
NSURLResponse *response; // holds the response from the server
NSLog (@"NSURLResponse response = %@\n\n", response);
NSError *error; // holds any errors
NSLog (@"NSError error = %@\n\n", error);
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse:&response error:&error]; // call the URL
NSLog (@"NSData returnedData = %@\n\n", returnData);
//If the response from the server is a web page, dataReturned will hold the string of the HTML returned.
NSString *dataReturned = [[NSString alloc] initWithData:returnData encoding:NSASCIIStringEncoding];
NSLog(@"returned htmlASCII is: %@\n\n", dataReturned);
NSString *dataReturned2 = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"returned htmlUTF8 is: %@\n\n", dataReturned2);
}
Вот вывод NSLog для всех переменных
2012-03-29 12: 10: 04.306 MyApp [2635: f803] NSString userName = mymadeupusername
Текущий язык: авто; в настоящее время цель-с
2012-03-29 12: 10: 16.520 MyApp [2635: f803] Пароль NSString = 1234
2012-03-29 12: 10: 16.520 MyApp [2635: f803] NSString url = http% 3A% 2F% 2Fsomewebpage.com% 3A80% 2Fweb2% 2Fweb3% 2Faction% 2Fsigin.go% 3FargetturL% 3Dhttp% 3A% 2F% 2Fsomewebpage.com% 2Fweb2% 2Fweb3% 2Faction% 2Fyouraccounts.go% 3Fdscnt% 3D0% 26vid% 3DBSU
2012-03-29 12: 10: 16.521 MyApp [2635: f803] NSString postString = bor_id = joeliot & bor_verification = 1234 & url = http% 3A% 2F% 2Fsomewebpage.com% 3A80% 2Fweb2% 2Fweb3% 2Factiongo 2Fsigin. 3FtargetURL% 3Dhttp% 3A% 2F% 2Fsomewebpage.com% 2Fweb2% 2Fweb3% 2Faction% 2Fyouraccounts.go% 3Fdscnt% 3D0% 26vid% 3DBSU
2012-03-29 12: 10: 16.522 MyApp [2635: f803] NSString NSMutableURLRequest = https://somewebpage.com/pds?func=login&calling_system=blah&term1=short&company=BSU>
2012-03-29 12: 10: 16.522 MyApp [2635: f803] NSData requestData =
2012-03-29 12: 10: 16,650 MyApp [2635: f803] NSURLResponse response = (null)
2012-03-29 12: 10: 16,651 MyApp [2635: f803] Ошибка NSError = (ноль)
2012-03-29 12: 10: 17.422 MyApp [2635: f803] NSData returnData = (null)
2012-03-29 12: 10: 17.422 MyApp [2635: f803] вернул htmlASCII:
2012-03-29 12: 10: 17.422 MyApp [2635: f803] вернул htmlUTF8: