2016-04-04 13 views
0

PUTリクエストを送信しようとしていますが、失敗しています。私は(例外がスローされませんさらに、使用中に)次の行がログに以下のデータを送信しようとしている 初回のみ:AndroidはHTTP PUTを送信しますが、エラー:isDataScedulerEnabled():False

E/DataScheduler: isDataSchedulerEnabled():false

は、私はそれはおそらく意味するかもしれない何かをGoogleにしようとしたが、と運がない。また、データを送信しようとするさらなる試みでも、前述の例外はもう発生しませんが、データはまだ送信されていません。私は自分のサーバー上でそれを送信しようとしており、その側で接続が受信されていないことがわかります。私のAndroidのブラウザを使って、しかし、私は成功したGET要求を送ることができます。

私もですでにインターネットのアクセス許可を設定した

:私は、JavaやAndroidに非常に精通していないよしかし、私の知る限り、要求が形成されるべきである

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

と次のように送られました。

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、ポートと、送信されるように、弦。

どのようにすれば効果がありますか?

答えて

0

params [0]とparams [1]は実際にあなたのURLのアドレスとポートであると思われます。そうなら、あなたは以下の記事を参照したい場合があります。

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

あたりとして:コンテンツは、応答との対話を開始した場合に送信されるので、以下を追加します

Making PUT request with JSON data using HttpURLConnection is not working

ポスト、それが動作するかどうかを確認しますか?

+0

ああ、その小さなコードがトリックを作った!奇妙なことに、私がコードを学んだ例ではありませんでした。とにかく、ありがとう。あなたは正式に私の一日を救ってくれました:) – user3622167

+0

仲間の仲間を助けてくれることを嬉しく思っています。ここで役に立つか良い答えを得るのが難しいですか、通常は自分の質問に答える必要があります。運が良かった! :) – partynose