こんにちは、サーバーにファイルを送信する必要があります。このコードを使用します
public void PostFile() {
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
// httpclient.
HttpPost httppost = new HttpPost("http://fastcalc.orionsource.ru/test.php");
File file = cache.getFileFromCache("citys.json");
FileEntity reqEntity = new FileEntity(file,"text/plain");
reqEntity.setContentType("text/plain");
httppost.setEntity(reqEntity);
System.out.println("executing request " + httppost.getRequestLine());
HttpResponse response;
try {
response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();
System.out.println(response.getStatusLine());
if (resEntity != null) {
System.out.println(EntityUtils.toString(resEntity));
}
if (resEntity != null) {
resEntity.consumeContent();
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
httpclient.getConnectionManager().shutdown();
}
以下のサーバー側のコードで
<?php
print 'Files:';
print_r($_FILES);
print '<br><br>';
print "Response:\n";
print_r($_REQUEST);
print '<br><br>';
?>
Androidでは応答が得られます
05-29 17:26:29.232: I/System.out(26823): executing request POST http://fastcalc.orionsource.ru/test.php HTTP/1.1
05-29 17:26:29.732: I/System.out(26823): HTTP/1.1 200 OK
05-29 17:26:29.732: I/System.out(26823): Files:Array
05-29 17:26:29.732: I/System.out(26823): (
05-29 17:26:29.732: I/System.out(26823): )
05-29 17:26:29.732: I/System.out(26823): <br><br>Response:
05-29 17:26:29.732: I/System.out(26823): Array
05-29 17:26:29.732: I/System.out(26823): (
05-29 17:26:29.732: I/System.out(26823): )
05-29 17:26:29.732: I/System.out(26823): <br><br>
MultipartEntity はどの Android バージョンにも含まれていないため、使用できません。サードパーティのライブラリです。
誰かが FileEntity のみを使用するチュートリアルへのリンクを提供してください。