Система. Net .Http.HttpRequestException - PullRequest
0 голосов

Я пытаюсь сделать запрос soap:

 var _apiUrl = "https://www1.gsis.gr:443/wsaade/RgWsPublic2/RgWsPublic2";
            using (var httpClient = new HttpClient())
            {
                var response = await httpClient.PostAsync(
                    _apiUrl, new StringContent(
                      "myXML",
                        Encoding.UTF8,
                        "application/soap+xml"));
                if (response.IsSuccessStatusCode)
                {
                    Console.WriteLine(await response.Content.ReadAsStringAsync());
                }
            }

При попытке сделать запрос я получаю сообщение об ошибке

"Возникло исключение: 'Система . Net .Http.HttpRequestException 'в mscorlib.dll. "

У меня windows 7 64 бит, и я использую. net framework 4.7.2. Если я буду запускать проект в windows 10 или если я понизлю свой фреймворк в 4.6.1, тогда он будет работать нормально. Почему это происходит? enter image description here

1 Ответ

1 голос
/ 03 марта 2020

Кажется, вы столкнулись с этой ошибкой из-за неправильного xml serialization, это должно быть похоже на "text/xml; encoding='utf-8'" и System.Text.Encoding.ASCII.GetBytes(myXML) вместо того, что вы пытаетесь.

Вы можете попробовать это way:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("RequestURL");
    byte[] bytes;
    bytes = System.Text.Encoding.ASCII.GetBytes("myXML");
    request.ContentType = "text/xml; encoding='utf-8'";
    request.ContentLength = bytes.Length;
    request.Method = "POST";
    Stream requestStream = request.GetRequestStream();
    requestStream.Write(bytes, 0, bytes.Length);
    requestStream.Close();
    HttpWebResponse response;
    response = (HttpWebResponse)request.GetResponse();
    if (response.StatusCode == HttpStatusCode.OK)
    {
        Stream responseStream = response.GetResponseStream();
        string responseStr = new StreamReader(responseStream).ReadToEnd();
        return responseStr;
    }

Вы можете сослаться на Официальный документ

Надеюсь, что это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...