2017-01-17 17 views
0

中央銀行から為替レートを取得しようとしています。残念ながら、JSONでデータを提供できるapiはありません。 XMLでのみ。私はretrogit 2を使用しています。私は既にXMLを記述する2つのクラスを作成しました。これはWebサイトから取得したものです。しかし、私がコールバックの応答を取得しようとすると、私は404エラーコードを得ました。たぶん私の@GETメソッドが正しくないのでしょうか?私を助けてください!Retrofit 2を使用してXMLを解析する

最初のXMLフラグメント。それは日の通貨の配列が含まれています

<ValCurs Date="14.01.2017" name="Foreign Currency Market"> 
    <Valute ID="R01010"> 
    <NumCode>036</NumCode> 
    <CharCode>AUD</CharCode> 
    <Nominal>1</Nominal> 
    <Name>Австралийский доллар</Name> 
    <Value>44,5156</Value> 
    </Valute> 

そして、ここでは私のインターフェイスです:

public interface CbClient { 

    @GET("/XML_daily.asp") 
    Call<ValuteOnDate> getValuteOnDate(); 
} 

とサービスジェネレータクラス:...

public class ServiceGenerator { 

    public static final String API_BASE_URL = "http://www.cbr.ru/scripts/"; 

    private static OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); 

    private static Retrofit.Builder builder = new Retrofit.Builder() 
               .baseUrl(API_BASE_URL) 
      .addConverterFactory(SimpleXmlConverterFactory.create()); 
    public static <S> S createService(Class<S> serviceClass) { 
     Retrofit retrofit = builder.client(httpClient.build()).build(); 
     return retrofit.create(serviceClass); 
    } 
} 

そして、ここではMainActivityクラスです: ...

+0

エラーメッセージを投稿できますか? @GET( "/ XML_daily.asp")の先頭のスラッシュを削除する –

+1

はい。既にそれを修正しました。それは問題でした。あなたが答えとしてあなたのコメントを投稿するなら、私はそれを受け入れるでしょう。 – Kroha

答えて

2

lea @GET( "/ XML_daily.asp")にスラッシュを入れてください。

関連する問題