Java コードから Web サイトに Base64 でエンコードされた画像を POST しようとしています。ファイルのエンコードとデコードをローカルでテストしたところ、うまく機能しました。しかし、ウェブサイトにアクセスすると、画像が空白であると言われます。
これが私がPOSTする方法です。アップロードの代わりに別のアクションを使用すると、正しい応答が得られます!
ready = new java.net.URL(url);
WebRequest request = new WebRequest(ready, HttpMethod.POST);
request.setAdditionalHeader("Content-Type", "application/x-www-form-urlencoded");
String requestBody = "action=upload"
+"&key=ABCDEFG123456"
+ "&file=" + encodedFile
+ "&gen_task_id=" + SQL.getNextID();
encodedFile は、次のコードから取得されます。
File file = new File("temp.jpg");
FileInputStream fin = new FileInputStream(file);
byte fileContent[] = new byte[(int)file.length()];
fin.read(fileContent);
//all chars in encoded are guaranteed to be 7-bit ASCII
byte[] encoded = Base64.encodeBase64(fileContent);
String encodedFile = new String(encoded);
真剣に、私は何を間違っていますか?? もう何時間も頭を壁にぶつけています!