Android POST请求不工作

Android POST请求不工作,android,Android,我正在这样做: @Override protected Void doInBackground(String... strings) { try { String query = "username=" + strings[0] + "&duration=" + strings[1] + "&distance=" + strings[2]; URL url = new URL(ScoresActivity.URL); Ht

我正在这样做:

@Override
protected Void doInBackground(String... strings) {

    try {
        String query = "username=" + strings[0] + "&duration=" + strings[1] + "&distance=" + strings[2];
        URL url = new URL(ScoresActivity.URL);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("POST");
        Writer writer = new OutputStreamWriter(conn.getOutputStream());
        writer.write(query);
        writer.flush();
        writer.close();
        /*conn.addRequestProperty("username", strings[0]);
        conn.addRequestProperty("duration", strings[1]);
        conn.addRequestProperty("distance", strings[2]);*/
        Log.v(TAG, strings[0] + " - " + strings[1] + " - " + strings[2]);
        //conn.connect();
    } catch(Exception e) {
        Log.e(TAG, "exception", e);
    }

    return null;
}
但是请求在服务器上不起作用。。。在服务器上,我应该看到发送的数据,但我看不到它们

我也试过:

curl -XPOST --data "username=duri&duration=600&distance=555" http://someurl.com/

而且它是有效的。。。有什么问题吗?

请尝试使用此语法

@覆盖
受保护的字符串doInBackground(字符串…参数){
字符串urlString=params[0];
字符串userName=params[1];
字符串密码=参数[2];
URL=null;
InputStream=null;
HttpURLConnection-urlConnection=null;
试一试{
url=新url(url字符串);
urlConnection=(HttpURLConnection)url.openConnection();
urlConnection.setRequestMethod(“POST”);
urlConnection.setDoOutput(true);
字符串数据=URLEncoder.encode(“用户名”,“UTF-8”)
+“=”+URLEncoder.encode(用户名,“UTF-8”);
数据+=”&“+URLEncoder.encode(“密码”,“UTF-8”)+”=”
+urlcoder.encode(密码为“UTF-8”);
urlConnection.connect();
OutputStreamWriter wr=新的OutputStreamWriter(urlConnection.getOutputStream());
wr.写入(数据);
wr.flush();
stream=urlConnection.getInputStream();
BufferedReader reader=新的BufferedReader(新的InputStreamReader(流,“UTF-8”),8);
字符串结果=reader.readLine();
返回结果;
}捕获(IOE异常){
e、 printStackTrace();
}最后{
if(urlConnection!=null){
urlConnection.disconnect();
}
}
试一试{
《睡眠》(2000年);
}捕捉(中断异常e){
e、 printStackTrace();
Log.i(“结果”、“睡眠错误”);
}
返回null;
}

希望这有帮助。:)

你检查过它没有落入
catch(异常e)
块吗?是的,我一步一步地调试了它,它通过
try
块是的,问题是我没有从流读取器读取任何内容,所以请求没有发送。。。记住,即使你不需要结果,也要通读
BufferedReader
才能让事情顺利进行……我也遇到了同样的问题,我没有意识到你不能直接启动并忘记请求。