2016-11-17 4 views
-4

안드로이드 코드에 2 개의 개장을 사용 중입니다. 같은 서버를 사용하여 일부 서버를 호출하기 시작했습니다. 이제는 갱신 작업에 사용 된 POSt 요청에 갇혀 있습니다. 내가 원하는 무엇개조를 통해 안드로이드에서 POST 요청을하는 방법 2

내가 거의 밖으로 시도

[ "1", "2", "3", "4"] 내가 보낼 POST 요청 데이터가 같은 것입니다 수 있도록하는 것입니다 모든 길은 있지만 행운은 없습니다.

+2

* 나는 거의 모든 방법을 시험해 보았다. * ... 믿는 것이 어렵다. 왜 지금까지 해봤 던 것과 함께 왜 우리와 함께하지 않았는가? – Selvin

+0

좋아, 내가 지금까지 시도한 모든 코드를 여기에 게시하기를 원한다. 귀하의 정보를 위해, 나는 List 을 @Body 주석으로 인터페이스에 직접 전달하려고했습니다. 또한 RequestBody를 인터페이스 메소드에 전달합니다. – user2382771

답변

1

꽤 많은 튜토리얼이 있지만 아주 빠른 예제를 작성했습니다. 코드를 조금이라도 바꿔 주시면 잘하면 아이디어를 얻을 수 있습니다.

  1. 귀하의 나머지 인터페이스 :

    public interface MyRetrofit { 
    @POST("/users") 
    Call<MyResponse> postUser(@Body MyRequest body);} 
    
  2. 귀하의 개조가

    OkHttpClient.Builder okHttpClientBuilder = new OkHttpClient.Builder(); 
    
    Retrofit retrofit = new Retrofit.Builder() 
         .baseUrl("http://little-silence-8649.getsandbox.com") 
         .client(okHttpClientBuilder.build()) 
         .addConverterFactory(GsonConverterFactory.create()) 
         .build(); 
    
    apiInterface = retrofit.create(MyRetrofit.class); 
    
  3. 에게 호출을 만들

    MyRequest req = new MyRequest(); 
    req.setName("Kermit"); 
    Call<MyResponse> task = apiInterface.postUser(req); 
    task.enqueue(new Callback<MyResponse>() { 
         @Override 
         public void onResponse(Call<MyResponse> call, Response<MyResponse> response) { 
          Log.d(TAG, "Success"); 
         } 
    
         @Override 
         public void onFailure(Call<MyResponse> call, Throwable throwable) { 
          Log.e(TAG, "onFailure: ", throwable); 
         } 
    }); 
    

이것은 모두 아주 자명해야합니다. 1 단계에서 모든 REST 호출을 정의하는 인터페이스를 작성하십시오. 그런 다음 2 단계에서 ok http 클라이언트와 gson 변환기를 사용하여 개조 통과 사례를 만듭니다. gson 변환기는 요청을 json으로 변환합니다.

마지막으로 통화. 요청을 만듭니다. 이것은 단지 pojo 일 뿐이며 API를 갱신하여이를 전달합니다. 우리는 주 스레드에 있기 때문에 우리는 enqueue를 사용하고 우리는 새 스레드에서 네트워킹을 처리하기 위해 갱신을 원한다. 완전하게 개조되면 온 응답이나 온 실패를 되돌려줍니다.

희망이 있습니다.

P.S이 예에서는 REST 인터페이스에 대한 놀라운 테스트 도구 인 Sandbox을 사용합니다.

+0

빠른 답장을 보내 주셔서 감사합니다. 하지만 POJO를 생성하여이 유형을 시도했지만이 작동하지 않습니다 .. – user2382771

관련 문제