2016-11-06 31 views
0

iOSビルドでHttpClientを使用して簡単なWeb API呼び出しをしようとしています。 client.BaseAddressを設定すると、BaseAddressは常にnullに終わります。私は間違っている可能性があるものを見つけることができません。XamarinからWeb APIを呼び出せません

using System.Net.Http; 
    .... 
    private const string BaseApiUrl = "http://localhost:55904/"; 
    static HttpClient client = new HttpClient(); 
    client.BaseAddress = new Uri(BaseApiUrl); 
    // client.BaseAddress is still null 

サンプルXamarin以外のプロジェクトをダウンロードしましたが、同じコードが正常に動作します。 アイデア

更新 私は他のプラットフォームのいくつかを試してみることにしました。 UWPは正常に動作するようです。 Androidをテストしようとしていましたが、突然、「現在のコンテキストにInitializeComponentという名前が存在しません」というエラーが表示されます。 私はXamarinを初めて使っていますが、VSやC#では初めてです。

更新 iOSはインターネットアクセスの特別な許可をリクエストする必要がありますか?もしそうなら、それはどこで設定されますか?

+2

"localhost"ではなく、サーバーのIPアドレスまたはFQDNを使用する必要があります。 – Jason

+0

これは、ローカルホストが別のマシンで動作しているときに動作すると思っていたので、私は自分のローカルIP http://10.0.0.1:55904/に変更しようとしましたが、それでもnullです。私はIIS Expressを実行している可能性があります。 Get、Post、その他の呼び出しを行うときにIPに接続するだけで、割り当てが失敗しないことがわかった – jbassking10

+0

IIS Expressはデフォルトでリモートシステムからの接続を許可しません。回避策があります。グーグルで試してみてください。 – Jason

答えて

1

他の誰かがこの問題に遭遇した場合、私は原因を発見しました。 iOSプロジェクトにSystem.Net.Httpへの参照が含まれていないことが判明しました。参照を追加すると、すべて正常に機能しました。

関連する問題