java - Android HttpURLConnection写入post数据

标签 java android httpurlconnection

我正在尝试通过 HttpURLConnection 发送帖子数据,但它似乎没有发送帖子数据。

我能够在尝试发送 POST 请求之前立即通过 Toast 输出数据,但是当我在服务器端检查时,它会连接到 PHP 文件,但 POST 数据为空。

所以,我知道数据存在于 jsonObject 中。 我也知道它进入了 try catch 语句,但是当我连接时,它没有正确发送或接收。

try {
        URL url = new URL(emailURL);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        conn.setDoOutput(true);

        conn.setRequestMethod( "POST" );
        conn.setRequestProperty( "Content-Type", "application/json");
        conn.setRequestProperty( "charset", "utf-8");
        conn.setRequestProperty( "Content-Length", Integer.toString( jsonObject.toString().length() ));
        conn.setUseCaches( false );

        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());

        wr.write(jsonObject.toString());

          wr.close();

        BufferedReader reader = null;
        reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        StringBuilder sb = new StringBuilder();
        String line = null;

        // Read Server Response
        while ((line = reader.readLine()) != null) {
            // Append server response in string
            sb.append(line + "\n");
        }

        String text = "";
        text = sb.toString();



    } catch (Exception e) {

        throw new RuntimeException(e);
    }

最佳答案

尝试添加方法以确保它确实连接到您的服务器。

修改您的代码,例如:

    int responseCodeFromServer = -1;
    try {
         responseCodeFromServer=conn.getResponseCode();
    } catch (Exception e){
         e.printStackTrace();
    }

    if (responseCodeFromServer == HttpsURLConnection.HTTP_OK){
         BufferedReader reader = null;
         reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
         StringBuilder sb = new StringBuilder();
        String line = null;

       // Read Server Response
       while ((line = reader.readLine()) != null) {
          // Append server response in string
          sb.append(line + "\n");
       }

       String text = "";
       text = sb.toString();
    }

因此,如果连接到服务器时出现问题,您将看到异常。

关于java - Android HttpURLConnection写入post数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38576335/

相关文章:

java - 如何在 web.xml 文件中写入动态数据?

java - Java中是否有可用的在线电子商务项目架构

java - 如何让Jenkins查找作业中指定的shell脚本

android - livecode 5.5.5 启动应用只会黑屏

java - Flex 代码不会(仅有时)在 java+flex (+ BlazeDS+Tomcat ) 组合项目中编译。

android - 通过单击按钮停止 geocomplete 在输入字段中添加用户定义的位置

php - 似乎无法将 JSONObject 从 android 发送到远程服务器

java - 从 OkHttp 到 HttpURLConnection

java - NTLMv2 HTTP 身份验证 Java

java - HttpURLConnection 不读取整个响应