POST
を含むリクエストを作成しようとしてmultipart-form-data
いますNT Credentials
。認証要求によりPOST
が再送信され、繰り返し不可能なエンティティ例外が発生します。
MultipartContent
で生成されたエンティティをラップしようとしましたBufferedHttpEntity
が、スローしNullPointerExceptions
ますか?
final GenericUrl sau = new GenericUrl(baseURI.resolve("Record"));
final MultipartContent c = new MultipartContent().setMediaType(MULTIPART_FORM_DATA).setBoundary("__END_OF_PART__");
final MultipartContent.Part p0 = new MultipartContent.Part(new HttpHeaders().set("Content-Disposition", format("form-data; name=\"%s\"", "RecordRecordType")), ByteArrayContent.fromString(null, "C_APP_BOX"));
final MultipartContent.Part p1 = new MultipartContent.Part(new HttpHeaders().set("Content-Disposition", format("form-data; name=\"%s\"", "RecordTitle")), ByteArrayContent.fromString(null, "JAVA_TEST"));
c.addPart(p0);
c.addPart(p1);
のドキュメントはByteArrayContent
言う
バイト配列の内容に基づいて反復可能な入力ストリームを生成する AbstractInputStreamContent の具体的な実装。
すべての部分を再現可能にしても、問題は解決しません。このコードは を
System.out.println("c.retrySupported() = " + c.retrySupported());
出力するためc.retrySupported() = true
です。
次のドキュメントを見つけました。
1.1.4.1. 反復可能なエンティティ エンティティは反復可能である場合があります。つまり、そのコンテンツを複数回読み取ることができます。これは、自己完結型のエンティティ (ByteArrayEntity や StringEntity など) でのみ可能です。
文字列の内容を抽出して、メディア タイプの に変換MultipartContent
しましたが、同じエラーが発生します。ByteArrayContent
multi/part-form
しかし、私が試して呼び出すと、まだ次の例外が発生しますrequest.execute()
。
Caused by: org.apache.http.client.NonRepeatableRequestException: Cannot retry request with a non-repeatable request entity.