Я пытаюсь опубликовать учетные данные с использованием restful API, используя модификацию и конвертер json, и столкнулся с проблемой.Моя программа работает нормально, не удается установить соединение.Вызывается функция сбоя, а всплывающее сообщение - Ошибка сокета: EPERM (операция не разрешена)
Я использовал эти разрешения в моем файле манифеста
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Вот как я обработал ответный вызов
Call<ResponseBody> call= RetrofitClient
.getInstance()
.getApi()
.createUser(first_name,last_name,username,email,password,phoneNo);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
String s=response.body().toString();
Toast.makeText(MainActivity.this,s,Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Toast.makeText(MainActivity.this,t.getMessage(),Toast.LENGTH_LONG).show();
}
});
Я получаю сообщение об ошибке через метод onfailure ()
Это класс Retrofitclient, который я создал
package com.example.usersignup_usingapi;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class RetrofitClient {
private static final String BASE_URL="https://kamwene.000webhostapp.com/tza/tza/api/";
private static RetrofitClient mInstance;
private Retrofit retrofit;
private RetrofitClient(){
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
public static synchronized RetrofitClient getInstance(){
if(mInstance == null){
mInstance = new RetrofitClient();
}
return mInstance;
}
public Api getApi(){
return retrofit.create(Api.class);
}
}