我正在嘗試開發一個Xamarin.Forms或Xamarin.iOS/Xamarin.Droid原生應用程序,它可以對我的服務器進行Web API調用。我得到錯誤說HttpRequestException
拋出。一旦我搜索瞭解決方案,它說這是因爲它無法到達套接字,但我無法將其安裝到PCL項目。所以我檢查這個解決方案,他們說使用代理來獲得服務。來自PCL的Xamarin WebAPI調用
這是我的問題。我已經嘗試在PCL中創建一個代理來連接到.Droid或.iOS項目中的服務,以便他們可以使用這些套接字(儘管我不認爲該服務應該在應用程序項目本身中,因爲重複的代碼)。但是代理類不能引用服務,因爲它不在項目中。
這是我的RestService
類。
public class RestService : IRestService
{
private const string BASE_URI = "http://xxx.xxx.xxx.xxx/";
private HttpClient Client;
private string Controller;
/**
* Controller is the middle route, for example user or account etc.
*/
public RestService(string controller)
{
Controller = controller;
Client = new HttpClient();
}
/**
* uri in this case is "userId?id=1".
*/
public async Task<string> GET(string uri)
{
try
{
Client.BaseAddress = new Uri(BASE_URI);
Client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var fullUri = String.Format("api/{0}/{1}", Controller, uri);
var response = Client.GetAsync(fullUri);
string content = await response.Result.Content.ReadAsStringAsync();
return content;
}
catch (Exception e)
{
return null;
}
}
}
我找不到任何好的教程在線如何讓這個工作和任何幫助在這方面將不勝感激。
你檢查這 - https://stackoverflow.com/questions/15143107/httpclient-httprequestexception和這個 - https://stackoverflow.com/questions/31131658/xamarain-web-api –
只花了看看這兩個鏈接。這兩個解決方案都不是問題,因爲我沒有使用IIS,並且給出的郵件適用於郵遞員。 – Tomaltach
@Tmaltach避免整體阻止呼叫。將它移到響應中並沒有什麼區別。它仍然是一個阻止電話 – Nkosi