I want a POST call on an URL, and as response I just get a String "ok" or "no".. So I have here my interface like this:
public interface registerAPI
{
@FormUrlEncoded
@POST("addDevice.php")
Call<String> insertUser(
@Field("name") String devicename,
@Field("username") String regid);
}
So I just want to give the POST method the two parameters, and I want a back a String. In a PHP script on the server, there is something like this:
<?php
if(...)
echo "ok";
else
echo "no";
So I call on my Android-phone:
Retrofit adapter = new Retrofit.Builder()
.baseUrl("http://root.url.net/")
.addConverterFactory(GsonConverterFactory.create()) //I dont want this..
.build();
registerAPI api = adapter.create(registerAPI.class);
Call<String> call = api.insertUser(name,regid);
call.enqueue(new Callback<String>()
{
@Override
public void onResponse(Response<String> response, Retrofit retrofit)
{
Log.i("Error",response.message());
}
@Override
public void onFailure(Throwable t)
{
Log.d("Error", " Throwable is " +t.toString());
}
});
So, when I run this, in Throwable, I get the following message:
Unable to create converter for class java.lang.String
Do I have to write my own converter just for a String-response? And how do I do that? Or is there a better way to do this?
Regards
Ok the answer is to write an own converter. Like this:
You have to call it with this:
You get the response in this:
@Klatschen your answer is right,in Retrofit2 the abstarct function has changed.
}