2017-04-14 7 views
3

私は、次のコードを使用して製品を取得しようとしました:ZebbleのApi.Getメソッドに絶対URLを渡すにはどうすればよいですか?

public static async Task<List<Product>> GetProducts() 
{ 
    return await Get<List<Product>>("http://locahost:5919/api/products"); 
} 

しかし、それは方法だけで相対URLを受け入れ、私はConfig.xmlファイルでApi.Base.Url設定で絶対URLを渡す必要がゲットようです。

return文の前にBaseUrlプロパティで絶対URLを割り当てようとしましたが、何の違いもありませんでした。

もう1つの奇妙なことは、偽のURL(例:http://www.yahoo.com)をApi.Base.Urlの値として挿入してプロジェクトを実行すると、次のエラーが発生するということです。 Error when adding a fake URL for Api.Base.Url

したがって、1つのプロジェクトで異なるエンドポイントに異なるURLをリクエストする必要がある場合、どのように達成できますか?

答えて

0

あなたの前提は正しくありません。あなたが呼び出すと:次に

Api.Get<TResponse>(someUrl); 

  • someUrlがhttpで始まる場合://またはます。https://が、それは絶対として扱われますURL。
  • それ以外の場合は絶対URLを見つけるために、Zebbleは設定値Api.Base.Urlで接頭辞を付けます。

例:あなたが持っているあなたののconfig.xmlファイル内

の場合:

<Api.Base.Url>https://my-server.com</Api.Base.Url> 

その後、次の行は、HTTPリクエストに "https://my-server.com/api/hello" をお送りします

Api.Get<TResponse>("api/hello"); 

ただし、

Api.Get<TResponse>("https://some-absolute-url.com/..."); 
のconfig.xmlファイル内Api.Base.Urlは、次の呼び出し(それは絶対URLだとして)で無視されます
関連する問題