Существует в формате JSON вызов, который, когда я звоню через завитка, как показано ниже:
Как вызвать метод JSON в прошивкой
локон -H «Content-Type: применение/JSON» -H «Принять : применение/JSON»-d "{\" CheckIN \ ": {\" сообщение \ ": \" это тест \ "}}" http://gentle-rain-302.heroku.com/checkins.json
Я получаю этот результат:
{"checkin": {"created_at": "2011-01-29T13: 52: 49Z", "id": 3, "message": "this is test", "updated_at": " 2011-01-29T13: 52: 49Z "}}
Но когда я называю в моем iPhone App, как показано ниже:
- (void)doCheckIn:(NSString *)Str
{
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"inStore-settings.plist"];
NSDictionary *plistDictionary = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];
NSString *appURL = [plistDictionary objectForKey:@"apiurl"];
appURL = [appURL stringByAppendingString:@"checkins.json"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:appURL]];
[request setPostValue:@"{\"checkin\":{\"message\":\"test\"}}" forKey:@"message"];
[request startSynchronous];
NSError *error = [request error];
if (!error) {
NSString *response = [request responseString];
NSLog(response);
}
}
я получаю результат, говоря:
" Изменение, которое вы хотели, было отклонено (422) "
Любая помощь очень ценится.
Что такое значение appURL в конце концов? Кроме того, вы уверены, что правильно используете метод setPostValue:? Мне кажется, это немного от меня, потому что вы хотите, чтобы все тело сообщения было '{\" checkin \ ": {\" message \ ": \" test \ "}}', и похоже, что вы можете настроить это как значение для 'message'. – raidfive
@raidfive: appURL имеет «http://gentle-rain-302.heroku.com/checkins.json», и я даже попробовал: «[request setPostValue: @» Это тестовое сообщение «forKey: @» message " ];» Ничего не работает! – Ali