第一步: 需要提供输入到server.as下图
step2:
get response from server ,as below image.
![enter image description here][2]
step3:
MainActivity.java
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiInterface.URL_BASE)
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiInterface apiInterface = retrofit.create(ApiInterface.class);
// prepare call in Retrofit 2.0
try {
JSONObject paramObject = new JSONObject();
paramObject.put("merchant_id", "aaaaa");
paramObject.put("secret_key", "bbbbb");
Call<RequestBody> userCall = apiInterface.getUser(paramObject.toString());
userCall.enqueue(this);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onResponse(Call<RequestBody> call, Response<RequestBody> response) {
Log.d("TEST","TEST--onResponse1---"+call);
Log.d("TEST","TEST--onResponse2---"+response);
}
@Override
public void onFailure(Call<RequestBody> call, Throwable t) {
Log.d("TEST","TEST--onFailure1--"+call);
Log.d("TEST","TEST--onFailure1--"+t);
}
========================================================
step4: ApiInterface.hava
public interface ApiInterface {
@Headers("Content-Type: application/json")
Call<RequestBody> getUser(@Body String body);
}
日志将转到“ onResponse.code()”得到307”,但我认为能够 获得正确的数据。 我是翻新服务的新手。请帮助我。
答案 0 :(得分:0)
不使用其他库就无法将String
发送给Retrofit。
由于您已经在使用Gson。创建一个Gson可以序列化的类。
class Credentials {
@SerializedName("merchant_id")
public String merchantId;
@SerializedName("secret_key")
public String secretKey;
}
接口方法。 @注意输入类型。
@Headers("Content-Type: application/json")
Call<RequestBody> getUser(@Body Credentials credentials);
答案 1 :(得分:0)
307
是Temporary Redirect
-您可能必须遵循该重定向。
这意味着,您需要配置OkHttpClient
来这样做:
OkHttpClient client = new OkHttpClient.Builder()
.followSslRedirects(true)
.followRedirects(true)
.build();
,然后将其设置为retrofit2
的客户端:
retrofit = new retrofit2.Retrofit.Builder()
.baseUrl(Constants.API_BASE_URL)
.client(client)
.build();