Не могу достичь WCF в местном

После нескольких Туто я запрограммировал этот код, который не работает. Когда я вызываю действие, которое содержит вызов Retrofit, приложение разбилось (это происходит, когда я добавляю код для создания объекта Retrofit)….
Im пытается использовать WCF (URL = http://192.168.0.156:52896/Service1.svc ) (имя метода =devolverPisosA())

-- Interface --
public interface RestApi {
@GET("/devolverPisosA")
Call<List<pisoAlquiler>> devolverPisosA();
}

-- Pojo Class --
public class pisoAlquiler {
private int codigo;
private String fotos;
// GET AND SET INCLUDED...
}

-- Activity --
public class Alquiler extends AppCompatActivity implements Callback<List<pisoAlquiler>> {

public static final String BASE_URL = "http://192.168.0.156:52896/Service1.svc";

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_alquiler);

        // CREATE CLIENT SERVICE
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        // prepare call in Retrofit 2.0
        RestApi restApi = retrofit.create(RestApi.class);

        Call<List<pisoAlquiler>> call = restApi.devolverPisosA();
        //asynchronous call
        call.enqueue(this);
}


@Override
public void onResponse(Call<List<pisoAlquiler>> call, Response<List<pisoAlquiler>> response) {
    setProgressBarIndeterminateVisibility(false);

    responsePisosAlquiler = (ArrayList<pisoAlquiler>) response.body();
}

@Override
public void onFailure(Call<List<pisoAlquiler>> call, Throwable t) {
    Toast.makeText(Alquiler.this, t.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}

Поэтому моя main_activity вызывает (и запускает новую активность) вторую активность (которая запускает retrofit), но я никогда не достигал ее. Второе действие возвращается в main_activity мгновенно, ничего не делая (retrofit stuff)…

Спасибо Товарищам…

ОТРЕДАКТИРОВАННЫЙ:
Проблема (и Im угадывание) может быть мое определение конечных точек. Когда я устанавливаю дооснащение с baseUrl и get… Мой WCF выглядит как http://192.168.0.156:52896/Service1.svc и метод, который я хочу назвать devolverPisosA, но я не знаю, как установить retrofit для потребления его.

Просто пытаясь

baseUrl = http://192.168.0.156:52896/Service1.svc/
@GET («devolverPisosA«)

1 ответ

  1. Что ж,

    Проблема была Im в режиме Debbug и WCF (Visual Studio) и Android Studio не был настроен в той же сети.

    Настройка Visual Studio для работы с Android Studio в локальной сети:

    Сеть.Config должен быть установлен для прослушивания из разных мест. Между службами и тегами поведения:

    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
    

    Откройте applicationhost.конфигурация, выделенная в папке проекта — > Config: измените следующую:

    <site name="Proyect" id="2">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="c:\ProjectFolder\Proyect />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:52896:localhost" />
                </bindings>
            </site>
    

    Для:

    <site name="Proyect" id="2">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="c:\ProjectFolder\Proyect" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:52896:localhost" />
                  <binding protocol="http" bindingInformation="*:52896:*" />
                </bindings>
            </site>
    

    С этим, мы можем слушать внутренний запрос.

    Откройте Брандмауэр Windows для этого порта.