2017-06-21 25 views
0

に体として2つの文字列アイテムを送信します。
はので、私は、このコードは、私はこのような改造オブジェクトを持つ改造

@Headers 
({ 
    "Content-Type: application/x-www-form-urlencoded", 
      "cache-control: no-cache" 
}) 
@POST("login") 
Call<RegisterResponse> register(@Body TestObject testObject); 

class TestObject{ 
    String n1; 
    String n2; 

} 

を使用する必要がありますが、私はそれを変更することはできませんし、それが体として2つのパラメータを取得するサーバーを持っています。
私は郵便配達員を使うとき、私のサーバーはうまく動作し、何をすべきかをします。
私は改造を使用するときに私はエラー500「サーバー内部エラー」を得た
は私がokhttp

HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); 
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
    OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build(); 



    MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); 
    RequestBody body = RequestBody.create(mediaType, "n1=09369&n2=145616"); 
    Request request = new Request.Builder() 
      .url(URL) 
      .post(body) 
      .addHeader("content-type", "application/x-www-form-urlencoded") 
      .addHeader("cache-control", "no-cache") 
      .addHeader("postman-token", "0761ac45-1fb7-78df-d088-2437ecb984a3") 
      .build(); 

    okhttp3.Response response = client.newCall(request).execute(); 

とその作品の罰金でこれを行っているが、どのように私は後付けでそれを行うことができます?。

+0

'私は郵便配達員を使用すると私のサーバーはうまく動作します.'どのくらい正確に使用していますか?あなたは2人の身体をどこに渡しますか? –

+0

私はちょうど1つのボディタブを持って、私はそれに2つのパラメータを追加します – max

+0

それから同じことを - それに2つのパラメータを追加します。体を設定しない。 –

答えて

1

あなたは@FormUrlEncoded注釈を使用してデータを送信している必要なもの、あなたがそれをこのようcanuse here

それについての詳細をお読みください。変更のビットが必要とされる

@FormUrlEncoded 
@POST("login") 
Call<RegisterResponse> register(@Filed("n1") String n1, @Filed("n2") String n2); 
0

class TestObject{ 
    @SerializedName("n1") 
    @Expose 
    String n1;//if your server is looking for key with name n1, or change it to the required key 

    @SerializedName("n2") 
    @Expose 
    String n2; 
} 

あなたのコールコードはそのままです。 :)

+0

同じエラーが発生していません:( – max

関連する問題