#c# #uwp #xamarin.uwp
#c# #uwp #xamarin.uwp
Вопрос:
Я написал простой метод получения данных из (онлайн) службы REST:
public async Task<Object> GetTask()
{
try
{
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri("http://111.111.111.111:8080/");
HttpResponseMessage result = await client.GetAsync("ABC/CDE/getsomeinfo");
if (result.IsSuccessStatusCode)
{
//Deserialize
}
}
}
catch (Exception ex)
{
Debug.WriteLine("Error" ex);
}
return null;
}
Всякий раз, когда я запускаю это на UWP, я получаю исключение catch:
Не удалось найти текст, связанный с этим кодом ошибки.
Не удалось установить соединение с сервером
HResult 2147012867
Я пытаюсь подключить своего клиента к restapi во внутренней сети. В формах тот же код работает правильно.
Комментарии:
1. Вы предоставили своему приложению возможность доступа к локальной сети? ( msdn.microsoft.com/en-us/windows/uwp/packaging /… ,
privateNetworkClientServer
колпачок). Можете ли вы выполнить необработанное соединение TCP-сокета с целевым IP-адресом?
Ответ №1:
Попробуйте это
HttpResponseMessage response;
public async Task<string> webserviceResponse(string HttpMethod)
{
// check internet connection is available or not
if (NetworkInterface.GetIsNetworkAvailable() == true)
{
// CancellationTokenSource cts = new CancellationTokenSource(2000); // 2 seconds
HttpClient client = new HttpClient();
MultipartFormDataContent mfdc = new MultipartFormDataContent();
mfdc.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data");
string GenrateUrl = "your url";
if (HttpMethod == "POST")
{
response = await client.PostAsync(GenrateUrl, mfdc);
}
else if (HttpMethod == "PUT")
{
response = await client.PutAsync(GenrateUrl, mfdc);
}
else if (HttpMethod == "GET")
{
response = await client.GetAsync(GenrateUrl);
}
var respon = await response.Content.ReadAsStringAsync();
string convert_response = respon.ToString();
return convert_response;
}
else
{
return "0";
}
}
Комментарии:
1. Я установил возможность подключения к Интернету в Package.appxmanifest и его работе, спасибо
2. установить на какую возможность?