无法从改装中访问JSON结果(来自WCF)



刚开始使用改装,但我有一些疑问。我无法避免一些错误,这些错误不允许我调试我的应用程序。很抱歉打扰你们。

这是代码的一部分,也许你需要知道。

正如大家所看到的,GraddleInterface(用于Rest)、PojoClass活动

--Graddle--
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.google.code.gson:gson:2.5'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'
--Pojo--
public class pisoAlquiler {
private int codigo;
private String fotos;
}
public class pisosAlquiler {
List<pisoAlquiler> pisoAlquilerList;
}
--Interface--
public interface RestApi {
@GET("/Service1.svc?wsdl")
Call<pisosAlquiler> devolverPisosA();
}
--Activity--
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alquiler);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://localhost:52896")
.addConverterFactory(GsonConverterFactory.create())
.build();
// prepare call in Retrofit 2.0
RestApi restApi = retrofit.create(RestApi.class);
Call<pisosAlquiler> call = restApi.devolverPisosA();
//asynchronous call
call.enqueue(this);
}
@Override
public void onResponse(Call<pisoAlquiler> call, Response<pisoAlquiler> response) {
setProgressBarIndeterminateVisibility(false);
// Create a LinearLayout element
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
pisosAlquiler prueba = (pisosAlquiler) response.body().pisoAlquilerList;
}

我有两个错误,可能是同一个问题造成的。

onCreate中:

call.enqueue(this);

this返回错误,称调用中的无法应用,如果我使用pisoAlquiler类,而不是pisoAlquiler(包含pisoAluiler列表),则错误消失。

onResponse中:

pisosAlquiler prueba = (pisosAlquiler) response.body().pisoAlquilerList;

pisoAlquilerList返回无法解析符号。看起来我可以称pisoAlquiler的属性,但不是pisoAlquiler拥有的唯一属性…

有什么想法吗?

谢谢Mates。

好吧,

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

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

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

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

最新更新