ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 아이폰에서 워드프레스 댓글 - post 전송
    프로그래밍/아이폰 2010. 12. 6. 15:11

    워드프레스에 이미 XML-RPC를 지원하고, 모바일용 어플리케이션이 오픈소스로 나와있어서

    최적화된 방법과 표준 프로토콜을 사용하는 방법이 나와있습니다.

     

    아이폰에서 일반적인 post 형식의 데이터를 전송하기 위한 방법입니다.

     

    우선 워드프레스의 코멘트를 처리해주는 기본적인 로직은 .../wordpress/wp-comments-post.php 입니다.

    해당 php 프로세스로 덧글양식을 날려주기만 하면 됩니다.

     

    우선 해당 php의 주소로 mutable한 URL리퀘스트를 생성합니다.

     

    NSURL *ul = [[NSURL alloc] initWithString:@http://.../wordpress/wp-comments-post.php];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];

     

    리퀘스트 형식을 "post"로 하고, 헤더를 정의해줍니다.

     

    [request setHTTPMethod:@"POST"];

    [request setVale:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

     

     

    이제 POST 메소드의 body만 작성해서 날리면 되는데요.

    워드프레스의 comments-post에 날려야 하는 필드는 로그인하지 않았다면 comment와 포스트 id만 넘기면 됩니다.

    작성자를 함께 입력하려면, 작성자(author), 이메일(email), 작성자 URL (url), 내용(comment)와 포스트id 가 필요합니다.

     

    앱에서 전송할거라서 hidden같은 값은 어차피 안보이니 의미가 없습니다.

     

    NSString *postBody = [NSString stringWithFormat:@"comment=덧글입니다&comment_post_ID=1"];

     

    적기 힘드니 대충 저런 모양세입니다. 배열로 개별값을 만들어서, 문자열 생성하시면 편리합니다.

    각각의 value는 n=v 식이고, &로 계속 이어가면 됩니다. 암튼 작성하시고,

    UTF8로 인코딩해서 NSData로 변경해주세요.

     

    NSData *param = [postBody dataUsingEncoding:NSUTF8StringEncoding];

     

    이제 이걸 리퀘스트에 첨부합니다.

     

    [request setHTTPBody:param];

     

    이제 urlconnection을 하나 만드시고 날리시면 됩니다.

     

    NSURLConnection *connection=[[[NSURLConnection alloc] initWithRequest:request delegate:nil] autorelease];

    [connection start];

     

    [url release];

    [request release];

     

     

    원한다면 URLconnection에 델리게이트 설정해서 피드백을 받을수 있습니다.

    댓글

Exploration of Social Technologies