如何使用改造在android中使用xml解析

时间:2018-10-09 11:18:40

标签: android xml-parsing retrofit2

我是Android的新手,我想使用改造功能来解析xml文件,我已经遍历了stackoverflow中发布的链接
 How to use Retrofit and SimpleXML together in downloading and parsing an XML file from a site? 但是在我的情况下,我必须添加标题,如何使用Retrofit实现此功能。

下面是xml解析器XmlParser

2 个答案:

答案 0 :(得分:0)

不带标题的示例Web服务:

public interface ApiService {
    @GET("/webservice/xml")
    Call<YourClass> getXml();
}

这是我们添加静态和动态标题的方式:

public interface ApiService {
    @Headers({"Accept: application/json"})
    @GET("/webservice/xml")
    Call<YourClass> getXml(@Header("Authorization") String authorization);
}

使用ApiService:

new Retrofit.Builder()
.baseUrl("server ip")
.addConverterFactory(SimpleXmlConverterFactory.create())
.build().create(ApiService.class).getXml("This is a value that will be sent as authorization header");

要使用此代码,应将以下行添加到gradle文件中:

compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile('com.squareup.retrofit2:converter-simplexml:2.1.0') {
    exclude group: 'xpp3', module: 'xpp3'
    exclude group: 'stax', module: 'stax-api'
    exclude group: 'stax', module: 'stax'
}

这是一个很好的教程https://futurestud.io/tutorials/retrofit-add-custom-request-header

答案 1 :(得分:0)

示例标头为静态值的接口:

public interface ApiService {

    @Headers("user-key: 9900a9720d31dfd5fdb4352700c")
    @GET("api/v2.1/search/webxml")
    Call<String> getRestaurantsBySearch(@Query("q"), String query);

}

以标头作为参数的示例接口:

public interface ApiService {

    @GET("api/v2.1/search/webxml")
    Call<String> getRestaurantsBySearch(@Query("q"), String query, @Header("user-key") String userkey);

}