2010-05-19 3 views
0

HttpGet을 사용하여 장고 서버에서 가져온 Post (사용자 정의 클래스 필드) 페이지를 채울 필요가있는 마이크로 블로깅 플랫폼을 개발 중입니다.Android에서 Django에 여러 HTTP 요청 보내기

클라이언트 측 (안드로이드)에서 GSON을 사용하여 서버의 응답을 Post 유형으로 구문 분석하고 있습니다. 그래서 나는 서버가 포스트를 하나씩 보내서 파싱 후에 포스트 목록에 각 포스트를 추가하고 마침내 모든 포스트가 추가 된 후 데이터 세트의 변경 사항을 목록 어댑터에 알리는 것을 요구합니다.

하지만 응용 프로그램을 처음로드 할 때 문제가 발생하는 경우 서버에서 10 개의 최신 게시물을 채워야합니다. 그래서 나는 10 개의 httpget 요청을 하나씩 다른 서버에 보내는 오히려 더러운 방법을 생각했다. 코드의 모습이

public void populateTimeline(){ 
Thread populate = new Thread(){ 
    public void run(){ 
     Looper.prepare(); 
     InputStream data = getData(serviceURL); //gets a post from server 
     if(data!= null){ 
      String result = responsetoString(data); //turns response to String 
      progressDialog.show(); 
      Posts post = toPostfromGson(result); //Parses string to Post Object    
     } 
     Looper.loop(); 
    } 

}; 
populate.start();  

}

내가 얻을 수있는 루프에서 10 번을 실행하는 생각 된 10 포스트의 내가 필요로한다. 하지만 Django에서 내가 아는 한 (내가 틀렸다면 수정하십시오.) 클라이언트에게 마지막으로 보낸 Post의 인덱스를 유지할 방법이 없으므로 다음 HttpGet 요청에서 '다음'Post를 보낼 방법이 없습니다. 그래서 나는 아이디어가 없다.

나는 이것을 효율적으로하는 더 좋은 방법이 있다고 생각합니다. 어떤 도움이라도 대단히 감사 할 것입니다.

+2

그냥 최신 게시물 목록을 생성하고 gson에 직렬화 할 수 없습니까? –

답변

0

Dmitry의 의견에 대한 설명으로 여러 장의 (직렬화 된) 게시물을 반환하는 Django 앱의보기를 추가하는 것을 고려해보십시오. 다음과 같은 것 :

def get_posts(request, count=10): 
    posts = Post.objects.all().order_by("-date")[:count] 
    posts_in_gson = serialize_to_gson(posts) 
    return HttpResponse(posts_in_gson) 

클라이언트 코드는 게시물 목록과 단일 게시물을 처리해야합니다. (아니면 count=1으로 후속 통화를하십시오.)

+0

게시물 목록을 역 직렬화하기위한 새로운 클래스가 없어도이를 수행 할 수 있을지도 모른다고 생각했습니다. 그러나 그것은 불가능한 것처럼 보인다. 그래서 저는 이것을 대답으로 받아들입니다. – primpap