java - HttpsURLConnection 连接问题

标签 java android httpurlconnection

我遇到了似乎无法解决的 HttpsURLConnection 问题。基本上,我正在向服务器发送一些信息,如果其中一些数据有误,服务器会向我发送一个 500 响应代码。但是,它还在响应中发送了一条消息,告诉我哪一位数据是错误的。问题是当我读入消息时消息总是空的。我认为这是因为在读取流之前总是抛出 filenotfound 异常。我对吗?我也尝试阅读错误流,但这始终是空的。这是一个 fragment :

    conn = (HttpsURLConnection) connectURL.openConnection();
    conn.setDoOutput(true);
    conn.setConnectTimeout(30000);
    conn.setReadTimeout(30000);
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Length",
         Integer.toString(outString.getBytes().length));
    DataOutputStream wr = new DataOutputStream(conn
      .getOutputStream());
    wr.write(outString.getBytes());
    wr.flush();
    wr.close();
    if(conn.getResponseCode>400{

    String response = getErrorResponse(conn);

    public String getErrorResponse(HttpsURLConnection conn) {
    Log.i(TAG, "in getResponse");
    InputStream is = null;
    try {

     //is = conn.getInputStream();
    is = conn.getErrorStream();
    // scoop up the reply from the server
    int ch;
    StringBuffer sb = new StringBuffer();
    while ((ch = is.read()) != -1) {
     sb.append((char) ch);
    }
    //System.out.println(sb.toString());
    return sb.toString();
    // return conferenceId;
   }
    catch (Exception e){
    e.printStackTrace();
    }
    }

最佳答案

所以只是为了跟进这个,这是我解决它的方法:

public static String getResponse(HttpsURLConnection conn) {
    Log.i(TAG, "in getResponse");
    InputStream is = null;
    try {
        if(conn.getResponseCode()>=400){
            is = conn.getErrorStream();
        }
        else{
            is=conn.getInputStream();
        }
        ...read stream...
}

似乎像这样调用它们会产生一个带有消息的错误流。感谢您的建议!

关于java - HttpsURLConnection 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3804295/

相关文章:

java - 数据存储过滤器在带有 java 的 Google App Engine 中不起作用

java - 使用 Angular 6 和 Spring Rest API 下载文件

android - 适用于 Android 的 Google 日历 API - 如何将房间添加为 Activity 的 guest ?

android - 如何根据设备分辨率在react-native中设置通知小图标

java - Android 在将 json 发布到 web 服务时发送空参数

java - 部署时错误(java.lang.NoClassDefFoundError : com/sun/net/ssl/internal/ssl/Provider ) in Jboss 7

java - 在字典中的单个键下保存多个值

android - PhoneGap Android ChildBrowser 插件和 YouTube - 无法播放任何视频

java - 为什么我的 Android 应用程序在启动新 Activity 时崩溃?

java - 如果没有可用的互联网连接,我的应用程序会出现 ANR