2011-06-21 13 views
0

私はかなり奇妙なエラーが発生しました。単純なテキストファイルをサーバーにアップロードするアン​​ドロイドアプリケーションを作成しました。接続のコードは次のとおりです。AndroidのPOSTメッセージが送信されない

try { 
    URL = new URL(myURL); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
    connection.setDoOutput(true); 
    connection.setDoInput(true); 
    connection.setRequestMethod("POST"); 
    connection.setRequestProperty("Content-Type", "multipart/form-data; boundary="+"---"); 
    DataOutputStream output = new DataOutPutstream(connection.getOutputStream()); 
    output.writeBytes(<my post request>); 
    output.flush(); 
    output.close(); 
    connection.connect(); 
} 

このメソッドを実行すると、投稿要求はサーバーに送信されません。 wiresharkには何も表示されません.logcatを見るとエラーはなく、接続が正常に行われ、POSTメッセージは送信されません。しかし、私は右connection.connect後に簡単な行を追加する場合は()のような:

connection.getResponseCode(); 

は突然POSTメッセージは問題ありません経由で送信されます。何が起きてる?メッセージを送信するためにレスポンスコードを取得する必要がありますか?

答えて

0
  1. Why do you have to call URLConnection#getInputStream to be able to write out to URLConnection#getOutputStream? つまり、getInputStream()を呼び出して閉じる必要があります。 getResponseCode()は確立された接続を必要とするため、動作しています。
  2. 電話する必要はありません。

    connection.connect(); は冗長です。

ここからワーキングサンプルを取得することができます:http://www.xyzws.com/Javafaq/how-to-use-httpurlconnection-post-data-to-web-server/139

+0

華麗な、ありがとう! – Otra

0

doInputをtrueに設定します。たぶんurl接続はそのために入力を待つかもしれません。それをfalseに設定してみてください。しかし、私も間違っている可能性があります。それは単なる推測です。

+0

ありません、申し訳ありませんが、動作しませんでした。 – Otra

関連する問題