Android发送HTTP PUT,但错误:isDataScedulerEnabled():False

时间:2016-04-04 14:00:32

标签: android http

我正在尝试发送一个PUT请求,但是在它中失败了。 只有在我第一次尝试发送数据时,以下行才会在日志中跟进(进一步使用时不会抛出任何异常):

  

E / DataScheduler:isDataSchedulerEnabled():false

我试图谷歌说出可能意味着什么,但没有运气。即使在发送数据的进一步尝试中,所提到的异常也不再引发,仍然没有数据被发送。我正试图在我自己的服务器上发送它,我可以看到没有收到这方面的连接。使用我的Android浏览器,我可以发送成功的GET请求。

我还通过以下方式设置了Internet权限:

<uses-permission android:name="android.permission.INTERNET" />

我对Java或Android不是很熟悉,但据我所知,应该形成请求并按以下方式发送:

public void sendFilesWithPut(String address, String file) {
    new AsyncTask<String,Void,Void>() {
        @Override
        protected Void doInBackground(String... params) {
            try {
                //Log.d("HTTP:","Address:"+params[0]+":"+params[1]+" file:"+params[2]);
                URL url = new URL("http://" + params[0] + ":" + params[1]);
                HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
                httpCon.setDoOutput(true);
                httpCon.setRequestMethod("PUT");
                OutputStreamWriter out = new OutputStreamWriter(httpCon.getOutputStream());
                out.write(params[2]);
                out.close();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    }.execute(address, Integer.toString(port), file);
}

每次尝试发送PUT请求时,我都可以打印一行到日志,这一切都是正确的:IP,端口和待发送字符串。

任何想法如何使其发挥作用?

1 个答案:

答案 0 :(得分:0)

我怀疑params [0]和params [1]实际上是你网址的地址和端口。如果是,那么您可以参考以下帖子:

Making PUT request with JSON data using HttpURLConnection is not working

如果您开始与响应进行交互,则会发送内容,因此请添加以下内容:

System.err.println(httpCon.getResponseCode());

根据帖子,看看是否有效?