5

以前、Javaを使用してフォームに情報を投稿したことがありますが、ファイルを使用して投稿したことはありません。このプロセスを画像とテキストファイルでテストしていますが、どうやら私はそれを行う方法を変更する必要があります。私が現在行っている方法(以下に表示)は機能せず、HttpClientを引き続き使用できるかどうかは完全にはわかりません。

params部分は文字列型のみを受け入れます。サーバーにファイルをアップロードするためのフォームがあります。私がCMSに使用しているサイトでは直接接続が許可されていないため、フォームを使用してファイルを自動的にアップロードする必要があります。

public static void main(String[] args) throws IOException {
    File testText = new File("C://xxx/test.txt");
    File testPicture = new File("C://xxx/test.jpg");

    HttpClient httpClient = new HttpClient();
    PostMethod postMethod = new PostMethod("xxxx");
    postMethod.addParameter("test", testText);

    try {
        httpClient.executeMethod(postMethod);
    } catch (HttpException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
4

1 に答える 1

4

メソッドを使用setRequestEntityしてファイルを直接送信します。

FileRequestEntity fre = new FileRequestEntity(new File("C://xxx/test.txt"), "text/plain");
post.setRequestEntity(fre);
postMethod.setRequestEntity(fre);

フォームデータとして送信するには、MultipartRequestEntity

File f = new File("C://xxx/test.txt");
Part[] parts = {
    new FilePart("test", f)
};
postMethod.setRequestEntity(
    new MultipartRequestEntity(parts, postMethod.getParams())
    );

参照:https ://stackoverflow.com/a/2092508/324900

于 2012-11-26T05:41:43.737 に答える