Запрос Python / запрос cURL в C # POST - PullRequest
0 голосов
/ 05 февраля 2019

Мне нужна помощь с простым запросом POST на форуме.У меня есть правильные данные, это работает в Python также, когда я пишу как команду cURL и запускаю ее с GitBash.Проблема в том, что это не работает в C #.

Мне нужна ваша помощь, потому что я не знаю, как написать правильный код на C #, который мне нужен.

Вот код Python:

import requests

headers = {
    'Content-type': 'application/x-www-form-urlencoded',
    'Cookie': 'cookie_notice=1'
}

data = 'id=44&typ=0&parent=-1&login=User&password=password&text=test22\ntest33'

response = requests.post('address.php', headers=headers, data=data)

Вот cURL:

curl 'address.php' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Cookie: cookie_notice=1' -d "id=44&typ=0&parent=-1&login=User&heslo=password&text=test22"

Я пытаюсь скомпилировать это: https://curl.olsh.me/

using (var httpClient = new HttpClient())
{
    using (var request = new HttpRequestMessage(new HttpMethod("POST"), "http://address.php/"))
    {
        request.Headers.TryAddWithoutValidation("Cookie", "cookie_notice=1"); 

        request.Content = new StringContent("id=44&typ=0&parent=-1&login=User&heslo=password&text=test22", Encoding.UTF8, "application/x-www-form-urlencoded"); 

        var response = await httpClient.SendAsync(request);
    }
}

Программа запускает этот код C # без ошибок, но в дискуссионном форуме нет 'т мой вклад.

Спасибо за ответ!

1 Ответ

0 голосов
/ 06 февраля 2019

Проблема в том, что HttpClient игнорирует заголовок запроса Cookie, поскольку он опирается на HttpClientHandler и его CookieContainer.Решение говорит HttpClient, что вы будете устанавливать куки через заголовки

var httpClient = new HttpClient(new HttpClientHandler { UseCookies = false }))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...