Java https有效,但C#不适用于同一请求

时间:2014-03-10 07:36:31

标签: c# java https ssl-certificate

我正在将发送https POST请求的JAVA程序转换为互联网上的第三方服务器。

  1. Java程序在我的电脑上运行,工作正常并连接到服务器。
  2. 然后我运行C#程序。但服务器返回400 Bad Request响应。
  3. 然后我使用Fiddler并通过JAVA和C#程序比较每个HTTP请求的内容,两个内容完全相同。
  4. 此处我无法使用http进行测试,因为目标服务器仅允许https
  5. 所以我猜这可能是Visual Studio的任何证书问题?有人知道这种情况吗?

    代码

    我已在此问题中发布了代码 Java vs C# HTTP request with JSON data

2 个答案:

答案 0 :(得分:0)

如果Java版本中出现问题,我会将证书视为原因。在Java中,证书问题会导致协议错误异常......而不是HTTP响应代码。类似地,向HTTPS端口发送HTTP请求(反之亦然)不会给出HTTP响应。

因此我怀疑>>是<<关于请求或请求标题的不同之处。

我能想到的唯一其他选择是:

  • 服务器根据IP地址提供响应,或者取决于是否提供了客户端证书,或

  • 您实际上正在与其他服务器或其他代理进行通信。

答案 1 :(得分:0)

尝试添加C#:

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