我試圖發送一個PUT請求,但在其中失敗。 只有我第一次嘗試(沒有異常拋出在進一步使用)發送數據以下行跟進日誌中:Android發送HTTP PUT,但錯誤:isDataScedulerEnabled():False
E/DataScheduler: isDataSchedulerEnabled():false
我想谷歌退出那會是什麼可能意味着,但沒有運氣。即使是在發送數據的進一步嘗試中,所提到的異常也不會再提出,仍然沒有數據被髮送。我試圖發送它在我自己的服務器上,我可以看到沒有連接收到的一方。使用我的Android瀏覽器,我可以發送成功的GET請求。
我還設置了權限,互聯網已經由:
<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,端口和將要發送的字符串。
任何想法如何使其工作?
嗯,這小小的代碼製造了詭計!奇怪的是它並沒有在我學習代碼的例子中。無論如何,謝謝你。你已經正式保存了我的一天:) – user3622167
不要提及它的朋友,很高興幫助一個同伴noob ...很難得到幫助或在這裏很好的答案,通常不得不回答我自己的問題。祝你好運! :) – partynose