J'essaie de développer une application native Xamarin.Forms ou Xamarin.iOS/Xamarin.Droid qui peut faire un appel API Web à mon serveur. J'obtiens l'erreur en disant HttpRequestException
jeté. Une fois que j'ai cherché une solution, elle dit que c'est parce qu'elle ne peut pas atteindre le socket, mais je suis incapable de l'installer dans un projet PCL. Donc, je vérifie la solution pour cela et ils ont dit d'utiliser un proxy pour atteindre le service.Appel WebAPI Xamarin de PCL
Voici mon problème. J'ai essayé de faire un proxy dans le PCL pour me connecter à un service dans les projets .Droid ou .iOS afin qu'ils puissent utiliser les sockets, (bien que je ne pense pas que le service devrait être dans le projet d'application lui-même). Mais la classe proxy n'est pas capable de référencer le service car il ne fait pas partie du projet. Il s'agit de la classe 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;
}
}
}
Je ne peux pas trouver de bons tutoriels en ligne sur la façon d'obtenir ce travail et toute aide dans ce qui concerne serait très apprécié.
Avez-vous vérifié this- https://stackoverflow.com/questions/15143107/httpclient-httprequestexception et this- https://stackoverflow.com/questions/31131658/xamarain-web-api –
a juste pris un Regardez les deux liens. Les deux solutions ne sont pas le problème ici car je n'utilise pas IIS et l'url donné fonctionne avec un facteur. – Tomaltach
@Tomaltach évite de bloquer les appels dans leur ensemble. Le déplacer vers la réponse ne fait aucune différence. il est toujours un appel de blocage – Nkosi