Java https работает, но C# не для того же запроса

Я конвертирую программу JAVA, которая отправляет https POST запрос к стороннему серверу в интернете.

  1. Java-программа запускается на моем ПК, она отлично работает и подключается к серверу.
  2. Затем я запускаю программу C#. но сервер возвращается 400 Bad Request ответ.
  3. Затем я использую Fiddler и сравниваю содержимое каждого HTTP-запроса программами JAVA и C#, и оба содержимого абсолютно одинаковы.
  4. Здесь я не могу проверить использование http потому что сервер назначения позволяет только https

Я предполагаю, что это может быть проблема с сертификатом Visual Studio? Кто-нибудь имеет представление о таком случае?

Код

Я уже разместил код в этом вопросе Java против C# HTTP-запрос с данными JSON

2 ответа

Попробуйте добавить в C#:

httpWebRequest.ContentType = "application/x-www-form-urlencoded";

Если бы проблема возникала в версии Java, я бы отклонил сертификаты как причину. В Java проблема с сертификатом может привести к ошибке протокола... а не к коду ответа HTTP. Аналогично, отправка HTTP-запроса на порт HTTPS (или наоборот) не даст HTTP-ответа.

Поэтому я подозреваю, что есть<< что-то другое в запросах или заголовках запросов.

Единственные другие альтернативы, о которых я могу думать:

  • сервер дает ответы в зависимости от IP-адресов, или в зависимости от того, были ли представлены клиентские сертификаты, или что-то, или

  • вы на самом деле разговариваете с другим сервером или другим прокси.

Другие вопросы по тегам