Android - 通过代码而不是POSTing?

时间:2014-09-21 09:06:01

标签: android httpurlconnection android-networking

我的编译器没有错误地查看我的代码,但它没有发布到网站上?

我已上网http://posttestserver.com/data/,我可以发帖。使用cURL,我可以发布,但是,当我运行我的代码时,它不会发布。

package cdlewis.pebbleaccelstream;

import android.os.AsyncTask;

import java.io.DataOutputStream;
import java.net.HttpURLConnection;
import java.net.URL;


public class PostMethod extends AsyncTask<URL, Void, Void> {

    @Override
    protected Void  doInBackground(URL... url) {


        try {

            HttpURLConnection conn = (HttpURLConnection) url[0].openConnection();
            System.out.println("Connection established");
            conn.setReadTimeout(10000);
            System.out.println("Read timeout");
            conn.setConnectTimeout(15000);
            System.out.println("Connect timeout");
            conn.setRequestMethod("POST");
            System.out.println("Post method");
            conn.setDoInput(true);
            System.out.println("set do input");
            conn.setDoOutput(true);
            System.out.println("set do output");

            DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
            System.out.println("dataoutputstream");
            wr.writeBytes("Hello! ");
            System.out.println("hello");
            wr.flush();
            System.out.println("flush");
            wr.close();
            System.out.println("close");
        } catch (Exception e) {
            System.out.println("Error! ");
        }

    return null;

    }



}

以下是我打电话给我班级的方式: -

try {
    new PostMethod().execute(new URL("http://posttestserver.com/data/"));
} catch (MalformedURLException e) {
    e.printStackTrace();
}

它打印出代码中的所有System.out.println(),但不会在网页上打印任何内容

2 个答案:

答案 0 :(得分:0)

您只是发送请求,但没有检查回复是什么。

int statusCode = conn.getResponseCode();

if (statusCode / 100 == 2) {

    // ok

    // can call conn.getInputStream() now
} else {

    // some error or a redirect

    // in case of error (4xx, 5xx) call conn.getErrorStream()
}

顺便说一下,你在catch条款中看不到多少信息。

答案 1 :(得分:0)

在System.out.println之后(&#34;关闭&#34;);加 conn.connect();这是错过的。