Я хочу интегрировать службу в мой проект. В их плохом документе написано:
Headers:
POST /avia.php HTTP/1.1
Host: www.tpg.ua
Connection: Keep-Alive
User-Agent: PHP-SOAP/7.2.16
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://www.tpg.ua/avia.php#getCities"
Content-Length: 395
Authorization: Basic here_your_basic_auth_token
Body:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-
ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://www.tpg.ua/avia.php"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:getCities />
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Я пытаюсь преобразовать это в код C #
Я получаю базовый токен, как этот, этотэто работа, это дает мне строку toket
var token = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes($"{username}:{password}")));
Затем я хочу получить данные с этим токеном, но ответ нулевой. Что такое проблема с моим кодом?
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.tpg.ua/avia.php#getCities");
httpWebRequest.ContentType = "application/xml";
httpWebRequest.Method = "POST";
httpWebRequest.Headers.Add("Authorization", "Basic " + token);
var myWebResponse = httpWebRequest.GetResponse();
var responseStream = myWebResponse.GetResponseStream();
if (responseStream == null) return null;
var myStreamReader = new StreamReader(responseStream, Encoding.Default);
var json = myStreamReader.ReadToEnd();
responseStream.Close();
myWebResponse.Close();