2012-06-25 3 views
0

다음과 같이 나는 텍스트 뷰를 사용하여 페이지의 wikitext를 편집하고 미디어 위키 API를 사용하여 서버에 저장하는 것을 시도하고있다 :아이 패드 응용 프로그램 서버에 wikitext를 저장

- (void)saveAction{ 

NSString *savedString = textView.text; 
NSString *baseurl=[[NSUserDefaults standardUserDefaults] stringForKey:@"url_preference"]; 
NSString *page=[[baseurl stringByAppendingString:@"/api.php?**action=edit&title=Testedit&text=savedString&token=**"] stringByAppendingString:[MySingleton sharedSingleton].token]; 
NSData *data=[savedString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSString *postlength=[NSString stringWithFormat:@"%d",[data length]]; 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:page]]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:postlength forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:data]; 
NSError *error=nil; 
NSURLResponse *response=nil; 
NSData *result=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
NSString *HTMLString2 = [[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding]; 
NSLog(@"%@", HTMLString2); 

}

하지만 난을 오류가 발생했습니다 : internal_api_error_MWException, Exception Caught : 확장 프로그램에서 발견 된 버그! 후크 iaifAPIEditBeforeSave에 유효하지 않은 호출 서명이 있습니다. 참조가 될 것으로 예상되는 매개 변수 1 - iaifAPIEditBeforeSave(). google에서 오류를 검색했지만 찾을 수 없습니다. 뭔가 제안 해주세요.

답변

2

그 위키는 오래된 Data Import Extension 인 것으로 보입니다. 필요에 따라 업데이트/제거하십시오. 이 특별한 오류를 수정해야하는 빠른 해킹은 확장/DataImport/IAI/includes/IAI_GlobalFunctions.php에서 을 function iaifAPIEditBeforeSave($editPage, $text, &$resultArr)으로 바꾸는 것이지만, 그 밖의 오래된/깨진 것이 무엇인지 알 수는 없습니다.

+0

고맙습니다. MaxSem. 그것은 실제로 효과가있었습니다. – gamersoul