2011-08-12 16 views
0

android Postメソッドの最大サイズはいくらですか?サーバーからの応答を取得するときに、メッセージの一部が欠落しています。ポストメソッドの最大サイズに達している可能性があります。 postメソッドの制限がない場合は、サーバーの仕様を変更する必要がありますか?androidのHTTP Postメソッドの最大サイズは何ですか

+0

ブラウザベースで、サーバーの構成に基づいているようです。理論的には限界があるとは思わない。 – Randroid

答えて

0

理論的には制限はありません。 POST応答サイズは、Java VMヒープサイズwhich is device independentに制限されています。おそらく、あなたのポストレスポンスが消費する以上のものでしょう。

回答の一部が欠落していることをどのように確認していますか? LogCatで印刷したり、デバッグモードで表示したりすると、3ドットで終わるメッセージの開始点のみが表示されます(メッセージはすべて表示され、表示されません)。

1

私は同じ問題を抱えていましたが、私はHttpPostを使用しました。応答はサーバーから取得されましたが、非常に大きなサイズのため一部のデータが欠落していました。だからこそ私は別の方法を使いました:HttpURLConnectionとOuputStreamを使ってリクエストをサーバーに送信し、BufferedReader/InputStreamを使ってレスポンスを取得します。

HttpURLConnection my_httpConnection = (HttpURLConnection) new URL("https://integrator-ut.vegaconnection.com/Authentication.svc?wsdl").openConnection(); 
    my_httpConnection.setRequestMethod("POST"); 
    my_httpConnection.setDoInput(true); 
    my_httpConnection.setDoOutput(true); 
    my_httpConnection.setRequestProperty("Content-type", "text/xml; charset=utf-8"); 



    OutputStream my_outPutStream = this.my_httpConnection.getOutputStream(); 
    Writer my_writer = new OutputStreamWriter(my_outPutStream); 
    my_writer.write(YOUR_REQUEST); //YOUR_REQUEST is a String 
    my_writer.flush(); 
    my_writer.close();   

    BufferedReader my_bufferReader = new BufferedReader(new InputStreamReader(this.my_httpConnection.getInputStream())); 
    char[] buffer = new char[10000]; 
    int nbCharRead=0; 
    try 
    { 
     while((nbCharRead = my_bufferReader.read(buffer, 0, 10000)) != -1) 
     { 
      /* Your treatement : saving on a file/arraylist/etc 

     } 
    } 
関連する問題