У меня есть вопрос по поводу моего кода C #.Я пишу программу, которая сначала авторизуется на веб-странице, а затем добавляет какой-то вклад в веб-страницу после ...
Я делал это раньше, копирую команду cURL (bash) и затем запускаю ее в GitBash, и она работаетхорошо.
Теперь я сделал это снова, и один из заголовков - XSID, это что-то вроде идентификатора для правильного добавления вклада в веб-страницу, и он генерируется на сервере (возможно).XSID очень важен для меня, потому что без этого XSID, который обновляется после входа в систему, у меня нет доступа к добавлению материалов на веб-страницу.
cURL Команда и эхо в GitBash:
Wittner@HP-POWER15-WITTNER MINGW64 ~
$ curl 'https://imhd.sk/po/prihlasenie.php' -i -s -H 'Content-Type: application/x-www-form-urlencoded' -H 'Cookie: cookie_notice=1;' -d 'login=user123&password=password'
HTTP/1.1 302 Found
Server: nginx/1.15.5
Date: Wed, 27 Mar 2019 21:48:41 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Connection: keep-alive
X-Powered-By: PHP/5.6.38
Set-Cookie: xsid=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/
Set-Cookie: xsid=1f3021122747dba70b9e4ab3b5f94d54; path=/; secure
Location: /po/
Как мне грустно, в GitBash все хорошо, и у меня есть этот XSID, но проблема в том, что у меня нет этого XSID вConsoleProgram в C # и GitBash.
Код в C #:
public static async Task ProgramAsync() {
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
HttpClient client = new HttpClient(new HttpClientHandler { UseCookies = false });
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://imhd.sk/po/prihlasenie.php?target=vyprava");
request.Content = new StringContent("login=user123&password=password", Encoding.UTF8, "application/x-www-form-urlencoded");
client.DefaultRequestHeaders.Add("Cookie", "cookie_notice=1");
var response = await client.SendAsync(request);
Console.WriteLine(response);
}
Эхо в C # без XSID:
StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Transfer-Encoding: chunked
Connection: keep-alive
X-UA-Compatible: IE=edge,chrome=1
Date: Wed, 27 Mar 2019 22:17:25 GMT
Set-Cookie: default_web=po; expires=Thu, 26-Mar-2020 22:17:25 GMT; Max-Age=31536000; path=/; domain=imhd.sk
Server: nginx/1.15.5
X-Powered-By: PHP/5.6.38
Content-Type: text/html; charset=UTF-8
}
Другая проблема заключается в том, что в GitBash это HTTP 302 Найденои в ConsoleProgram это HTTP 200 ОК.
Что я должен изменить в своем коде, чтобы получить такой же запрос с XSID, как в GitBash?
Большое спасибо!