使用HttpURLConnection 返回 Server returned HTTP response code: 500问题

try {

    // 创建SSLContext对象,并使用我们指定的信任管理器初始化
    TrustManager[] tm = { new MyX509TrustManager() };
    SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
    sslContext.init(null, tm, new java.security.SecureRandom());
    // 从上述SSLContext对象中得到SSLSocketFactory对象
    SSLSocketFactory ssf = sslContext.getSocketFactory();

    URL url = new URL(requestUrl);
    HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
    conn.setSSLSocketFactory(ssf);
    conn.setRequestMethod(requestMethod);
    conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
    conn.setDoOutput(true);
    conn.setDoInput(true);
    conn.setUseCaches(false);
    // 设置请求方式(GET/POST)

    // 当outputStr不为null时向输出流写数据
    if (null != outputStr) {
        OutputStream outputStream = conn.getOutputStream();
        // 注意编码格式
        outputStream.write(outputStr.getBytes("UTF-8"));
        outputStream.close();
    }

    // 从输入流读取返回内容
    InputStream inputStream = conn.getInputStream();
    InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
    String str = null;
    StringBuffer buffer = new StringBuffer();
    while ((str = bufferedReader.readLine()) != null) {
        buffer.append(str);

程序执行到InputStream inputStream = conn.getInputStream();抛出异常
java.io.IOException: Server returned HTTP response code: 500
我发现conn对象的method属性是get图片描述


网上查下有人说是jar包的问题,哪个jar包呢?

阅读 24.1k
3 个回答

谢邀,查了下有网友说是hessian包的问题。
使用hessian-3.1.5.jar或更高版本的包就会出现上述错误。更换hessian-3.0.20.jar以下的包就可以了。

我对这个类不熟悉哦,试试okhttp吧,httpurlconnection要了解的东西太多了,坑也多

你的代码里有 conn.setRequestMethod(requestMethod);,可见 requestMethod 不是写死的 "POST"。如果你的代码包含了 setDoOutput(true),那么就一定要写 setRequestMethod("POST") 这样才是一致的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题