私はこの問題を昨日見つけました。ここでは、Apache httpライブラリを使用するソリューションです。
package curldashf;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.fluent.Request;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.ByteArrayBody;
import org.apache.http.util.EntityUtils;
public class CurlDashF
{
public static void main(String[] args) throws ClientProtocolException, IOException
{
String filePath = "file_path";
String url = "http://localhost/files";
File file = new File(filePath);
MultipartEntity entity = new MultipartEntity();
entity.addPart("file", new FileBody(file));
HttpResponse returnResponse = Request.Post(url)
.body(entity)
.execute().returnResponse();
System.out.println("Response status: " + returnResponse.getStatusLine().getStatusCode());
System.out.println(EntityUtils.toString(returnResponse.getEntity()));
}
}
必要に応じてfilePathとurlを設定します。ファイル以外のものを使用している場合は、FileBodyをByteArrayBody、InputStreamBodyまたはStringBodyに置き換えることができます。私の特定の状況では、ByteArrayBodyが呼び出されていますが、上記のコードはファイルに対して機能します。
あなたの問題は何ですか?そして少しのmroeコードが参考になるでしょう。例えば 'httpPost'とは何ですか? –
javaプログラムを使用してcurlコマンド(すでにLinux端末コマンド)を送信しようとしています。私はマルチパートを試しましたが、ファイルをアップロードしたりダウンロードしたりする必要はありません。離れたリポジトリ間の転送です。 – amine
あなたのJavaコードは不完全です。そしてなぜそれがうまくいかないのか分からない。だからもっとコードを投稿してください(そして、はい、私たちは皆、 'カール'が何か....ということを知っています)。例えば。ポストメソッドを呼び出さないので、上記のフラグメントは明らかに機能しません。少なくともHttpURLConnectionが必要です。 –