无法在本地访问 WCF



在完成了一些教程之后,我对这段代码进行了编程,但它不起作用。当我调用包含"改装"的活动时,应用程序崩溃(当我添加创建"改装"对象的代码时会发生这种情况)。。。。我正在尝试使用WCF(URL=http://192.168.0.156:52896/Service1.svc)(方法的名称=devorPISA())

-- 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正在调用(并开始一个新的活动)第二个活动(启动改装),但我从来没有达到它。。。

谢谢Mates。。。

编辑时间:问题(我猜)可能是我对端点的定义。当我用baseUrl设置改装并获得。。。我的WCF看起来像http://192.168.0.156:52896/Service1.svc,我想调用的方法是devorPisoA。但我不知道如何设置消耗它的改装。

只是尝试

baseUrl=http://192.168.0.156:52896/Service1.svc/@GET(">devorPISA")

好吧,

问题是我处于Debbug模式和WCF(由Visual Studio提供),而Android Studio没有在同一网络中配置。

要配置Visual Studio以便在本地网络中使用Android Studio,请遵循下一步:

Web.Config必须设置为从不同位置侦听。在服务和行为标签之间:

<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>

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

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

用于:

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

有了这个,我们可以监听内部请求。

打开该端口的Windows防火墙。

最新更新