无法通过本地

时间:2016-05-29 16:30:43

标签: android wcf retrofit2

经过几次tuto之后,我编写了这段代码,但是没有用。当我调用包含Retrofit的活动时,应用程序崩溃了(当我添加用于创建Retrofit对象的代码时会发生这种情况).... 我正在尝试使用WCF(网址 = 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正在调用(并开始一个新的活动)第二个活动(启动改造),但我从来没有达到它。第二个活动立即返回main_activity而不做任何事情(改造的东西)......

谢谢Mates ......

EDITED: 问题(我猜)可能是我对端点的定义。当我使用baseUrl设置改造并获取...我的WCF看起来像 http://192.168.0.156:52896/Service1.svc 而我要调用的方法是 devolverPisosA ,但我不知道我知道如何设置改装以供消费。

试试

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

1 个答案:

答案 0 :(得分:0)

那么,

问题是我在Debbug模式和WCF(由Visual Studio)和Android Studio未在同一网络中配置。

要配置Visual Studio以在本地网络中使用Android Studio,请执行以下操作:

必须设置

Web.Config 以便从不同的地方收听。在服务和行为标签之间:

<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>

打开在项目文件夹中分配的 applicationhost.config - &gt;配置:更改下一个:

<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防火墙。