2012-04-19 7 views
0

私はポストを使用してWebサーバーにデータを送信しようとしています、これは私がこれまで持っているものです。コンテンツの長さ?必要な長さが設定されている?

private void entity(String id, String file) 
       throws JSONException, UnsupportedEncodingException, FileNotFoundException { 
      // Add your data 
      File myFile = new File(
        Environment.getExternalStorageDirectory(), file); 
      InputStreamEntity reqEntity = new InputStreamEntity(
        new FileInputStream(myFile), myFile.length()); 

      reqEntity.setContentType("text/csv"); 
      reqEntity.setChunked(true); // Send in multiple parts if needed 

      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); 
      nameValuePairs.add(new BasicNameValuePair("project", id)); 

      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      httppost.setEntity(reqEntity); 

      //httppost.setHeader("Content-Length", String.valueOf(myFile.length())); 

     } 

私はそれが必要なコンテンツの長さで戻ってくるのではなく、POSTリクエストを送信しますそれはここに設定されている?

InputStreamEntity reqEntity = new InputStreamEntity(
        new FileInputStream(myFile), myFile.length()); 
私がやっていることは助けてください、右であるかどうかはわからない

、感謝


編集 -

私は自分自身が使用してコンテンツ長を設定しよう

httppost.setHeader("Content-Length", String.valueOf(myFile.length())); 

ヘッダーは既に設定されています。

従ってそれがOutputStreamにデータを書き込む際に、局所的に使用されるInputStreamEntityためのコンテンツの長さを設定

答えて

0

は、問題を解決しました。

+0

Androidでこれを使用しているとは思わない? – FabianCook

+0

@SmartLemon悪いクラス名を調べるだけで、Apache HttpClientを使用していると思っていました。 – srkavin

+0

回答ありがとう、一般的には動作するJavaは受け入れます:P – FabianCook

0

をコメントアウトされている理由。この値は、リクエストのパラメータとして設定されません。そのヘッダを自分で設定する必要があります。あなたは

reqEntity.setChunked(false); 

を使用して私の場合StringBodyInputStreamBody(または)FileBody

+0

ありがとう、私はそれを得る、あなたは編集を読むことができますか? :D – FabianCook

+0

ああ、私はなぜそう思うかと思う。エンティティを2回設定しています。どうして? –

+0

私は2回それを設定していますか? – FabianCook

1

MultipartEntityを使用してaddPartメソッドを使用して部品を追加することもでき

関連する問題