Java https работает, но C# не для того же запроса
Я конвертирую программу JAVA, которая отправляет https
POST запрос к стороннему серверу в интернете.
- Java-программа запускается на моем ПК, она отлично работает и подключается к серверу.
- Затем я запускаю программу C#. но сервер возвращается
400 Bad Request
ответ. - Затем я использую Fiddler и сравниваю содержимое каждого HTTP-запроса программами JAVA и C#, и оба содержимого абсолютно одинаковы.
- Здесь я не могу проверить использование
http
потому что сервер назначения позволяет толькоhttps
Я предполагаю, что это может быть проблема с сертификатом Visual Studio? Кто-нибудь имеет представление о таком случае?
Код
Я уже разместил код в этом вопросе Java против C# HTTP-запрос с данными JSON
2 ответа
Попробуйте добавить в C#:
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
Если бы проблема возникала в версии Java, я бы отклонил сертификаты как причину. В Java проблема с сертификатом может привести к ошибке протокола... а не к коду ответа HTTP. Аналогично, отправка HTTP-запроса на порт HTTPS (или наоборот) не даст HTTP-ответа.
Поэтому я подозреваю, что есть<< что-то другое в запросах или заголовках запросов.
Единственные другие альтернативы, о которых я могу думать:
сервер дает ответы в зависимости от IP-адресов, или в зависимости от того, были ли представлены клиентские сертификаты, или что-то, или
вы на самом деле разговариваете с другим сервером или другим прокси.