System.Net.Http.HttpClient в [универсальной платформе Windows] не работает должным образом

Я написал простой метод для получения данных из (онлайн) службы 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:

Не удалось найти текст, связанный с этим кодом ошибки.

Не удалось установить соединение с сервером

HРезультат 2147012867

Я пытаюсь подключить своего клиента к рестапи во внутренней сети. В формах тот же код работает правильно.


person user3045261    schedule 14.10.2016    source источник
comment
Дали ли вы своему приложению возможность доступа к локальной сети? (msdn.microsoft.com/en-us/windows /uwp/packaging/ , шапка privateNetworkClientServer). Можете ли вы выполнить необработанное соединение TCP-сокета с целевым IP-адресом?   -  person Maximilian Gerhardt    schedule 14.10.2016


Ответы (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";
    }
}
person Ashish Singhal    schedule 14.10.2016
comment
Я установил возможности Интернета в Package.appxmanifest и его работу, спасибо - person user3045261; 14.10.2016
comment
установить на какую возможность? - person willyMon; 19.06.2019